Articles of unit testing

unit testing一个variables为true和false

我在这里用googletest / googlemock在C ++生产代码上工作。 在使用A.cpp中的某个函数时,我偶然发现了这个想法: bool A::process_(false); bool A::process() { if ( !process_ ){ process_ = true; } return process_; } 其中头部包含: protected: static bool process_; public: static bool process(); 我陷入了一种方式,我只能testing函数的预期的输出为true或input为false,如下所示: TEST(ATest, processVal){ A a; EXPECT_TRUE(a.process()); } 有没有一种方法来testing函数,使得process_ *true*和*false*值都被传递了? 这样testing涵盖了两者的决定。 我正在考虑嘲笑,所以它可以期待一个既是真实又是假的调用,但是因为它不是一个类的成员中的函数,所以我猜你不能嘲笑process_? 如果可以,如何模拟variables? 注意:我在linux和gcc上:)谢谢!

如何在Python中进行“基于性能”(基准)的unit testing

假设我已经获得了我的代码基础,使得unit testing覆盖率达到了很高的程度。 (超出某一特定时期,覆盖范围越来越大,投资回报率就越低。) 接下来我要testing性能。 要对代码进行基准testing,以确保新的提交不会不必要地减慢速度。 我对Safari对零售承诺放缓的零容忍政策非常感兴趣。 我不确定对于速度的承诺水平对于大多数项目来说都具有很好的投资回报率,但是我至less希望得到一个提示:速度回归已经发生,并且能够对此做出判断。 环境是Linux上的Python,一个对BASH脚本也可行的build议会让我很开心。 (但是Python是主要的焦点。)

googletest:如何设置?

我正在使用Linux机器。 我已经从这里下载googletest包 但是,没有安装指南或其他有关如何正确设置它的博客自述文件是不好的,我不明白它在说什么? 任何人都可以提供一个简单的例子,如何testing一个.cc文件中的简单函数与gtest包?

试图在Linux上closures睡眠

我需要在信号处理程序(有或没有SA_RESTART )可能中断close情况下,调查/testingLinux上某些代码的行为。 什么是最方便的设置,使我可以尝试用一个信号来触发这个过程,在一个可测量的时间窗口内进行系统睡眠的hibernate? 一些想法: 故意缓慢/无响应的NFS挂载 自定义FUSE驱动程序 但是,由于这些设置有点痛苦,我想知道是否有更多的现成的我可以使用,可以给予所需的行为。

unit testing文件修改

我最近一直在研究的程序中的一个常见任务是以某种方式修改文本文件。 (嘿,我在Linux上,一切都是文件,而且我是大规模的系统pipe理员。) 但是代码修改的文件可能不存在于我的桌面上。 我可能不想修改它,如果它在我的桌面上。 我已经阅读了Dive Into Python中的unit testing,当testing将十进制转换为罗马数字(DintoP中的示例)的应用程序时,我非常清楚自己想要做什么。 testing是很好的独立。 您不需要validation程序是否打印正确的东西,您只需要validation这些函数是否将正确的输出返回给定的input。 但是,就我而言,我们需要testing程序是否正确地修改了它的环境。 以下是我想到的: 1)在标准位置创build“原始”文件,可能是/ tmp。 2)运行修改文件的函数,将path传递给/ tmp中的文件。 3)validation/ tmp中的文件是否正确更改; 通过/失败单元相应的testing。 这对我来说似乎很笨拙。 (如果你想validation文件的备份副本是否正确创build,甚至可以获得kludgier等)有没有人想出了一个更好的方法?

如何模拟内存分配错误

我的C应用程序使用第三个库,它们自己的内存pipe理。 为了强大,我的应用程序有代码来处理由于缺乏可用内存而导致的库函数失败。 我想testing这个代码,为此,我需要模拟由于内存不足而导致的故障。 推荐使用什么工具? 我的环境是Linux / gcc。

如何在Linux上将googleTest设置为共享库

Debian不再为gTest提供任何预编译的软件包。 他们build议你把框架整合到你的项目makefile中。 但是我想保持我的make文件干净。 如何设置gTest像以前的版本(<1.6.0),以便我可以链接aganist图书馆?

在Windows上构buildCUnit

有没有人设法build立Windows的CUnit库? 我想在Windows下运行相同的unit testing,我目前在Linux下开发,所以我需要一个windows版本的cunit共享库链接到 我正在苦苦挣扎 有MinGW和MinGW MSYS工具安装,所以有一个海湾合作委员会编译器和制造等等 但尝试标准: ./configure make make install 在./configure失败 我已经尝试安装ftjam,并按照CUnit自述文件中的说明进行操作,但未能通过: jam -f Jambase install Jambase: No such file or directory don't know how to make install …found 1 target(s)… …can't find 1 target(s)… 在这里快速地走出想法 – 任何援助感激地收到

C ++testing框架:寻求推荐

我正在寻找一个“快速和肮脏”的C ++testing框架,我可以在我的Windows / Visual Studio框中使用。 这只是我的发展,所以它不一定是企业级软件。 盯着testing框架列表,我有点迷惑… http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks#C.2B.2B

Windows程序如何暂时更改其时区?

我已经写了一个函数来返回在给定的一天中对应于午夜的time_t值。 当某一天没有午夜时,它会返回最早的可用时间; 例如,当埃及进入夏时制时,就会出现这种情况。 今年四月二十九日深夜,时间变更生效,所以钟表从23点59分直到01点。 现在我正在为这个函数编写unit testing,其中一个testing应该复制埃及的情况。 在Unix中,我可以像这样完成它: putenv("TZ", "Egypt", true); tzset(); 在这之后,进一步打电话给localtime ,就好像他们在埃及而不是明尼苏达州,我的testing通过。 但是,仅仅设置环境variables对Windows没有任何影响。 我能做些什么来使unit testing认为它在别的地方,而不影响系统上运行的程序的其余部分?