C++ 在单元测试中伪造Linux系统时间
我正在单元测试一个使用当前时间的函数。因此,我正在寻找一种伪造系统时间的方法。我知道有些库会改变系统时间,但我正在寻找任何侵入性较小、简单的小型单元测试替代方案 是否存在类似的情况C++ 在单元测试中伪造Linux系统时间,c++,linux,unit-testing,datetime,C++,Linux,Unit Testing,Datetime,我正在单元测试一个使用当前时间的函数。因此,我正在寻找一种伪造系统时间的方法。我知道有些库会改变系统时间,但我正在寻找任何侵入性较小、简单的小型单元测试替代方案 是否存在类似的情况 TEST_T(MyUnitTest, example_test){ startFakeSystemDate("2017-3-13T18:12:49Z"); //perform time based unit test endFakeSystemDate(); } 解决这个问题的方法不是
TEST_T(MyUnitTest, example_test){
startFakeSystemDate("2017-3-13T18:12:49Z");
//perform time based unit test
endFakeSystemDate();
}
解决这个问题的方法不是编写一个获取系统时间的函数,然后在测试中模拟该函数吗?我如何在测试中模拟获取系统时间函数?这是软件。这是一个C文件,它生成了一个共享对象,其中包含一个可选的
time
和gettimeofday
(以及其他)和一个shell脚本,该脚本使用LD_PRELOAD来运行可执行文件和该共享对象,然后在测试中模拟该函数?如何在测试中模拟get system time函数?这是软件。它是一个C文件,用于生成一个共享对象,其中包含一个可选的time
和gettimeofday
(以及其他)和一个shell脚本,该脚本使用LD_PRELOAD来运行可执行文件和该共享对象。