Если возможно, как вы высмеиваете время для запуска импульсов повышения в unit test?
Например, можно ли добиться чего-то вроде следующего:
#include <iostream>
#include <boost/asio.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
void print(const boost::system::error_code& /*e*/)
{
std::cout << "Hello, world!\n";
}
int main()
{
boost::asio::io_service io; // Possibly another class needed here, or a way of setting the clock to be fake
boost::asio::deadline_timer t(io, boost::posix_time::hours(24));
t.async_wait(&print);
io.poll(); // Nothing should happen - no handlers ready
// PSEUDO-CODE below of what I'd like to happen, jump ahead 24 hours
io.set_time(io.get_time() + boost::posix_time::hours(24));
io.poll(); // The timer should go off
return 0;
}
Обновление. Спасибо всем ответам, они предоставили отличное представление о проблеме. Я предоставил свой собственный ответ (SSCCE), но не мог этого сделать без помощи.