2015-03-02 57 views
1

我想用Catch在C++ lib上进行单元测试。不过,我需要大部分的测试用例才能按顺序运行。即库需要以某种方式初始化,然后用户登录等。有没有任何设计模式来实现这一点。捕捉单元测试订购

提前致谢。

+0

您是否尝试过单元测试框架?他们大多数都有这种事情的装置。 – Collin 2015-03-02 23:31:32

+0

如果您需要它们以特定顺序运行,请将函数指针放入向量或数组中。 – 2015-03-02 23:42:18

+0

[Catch测试用例顺序]的可能重复(http://stackoverflow.com/questions/19694391/catch-test-case-order) – JBRWilkinson 2016-03-09 20:15:28

回答

4

测试按顺序运行,就像您所描述的一样。所以简单的答案是你不必做任何事情来获得这个功能。

然而,当单元测试时,超长测试功能以及夹具创建和断言的混合被认为是不好的形式:它们变得难以维护,并且需要更长的时间来隔离问题。解决这个问题的Catch方法相当有趣,参见the tutorial on Sections;我也发现了这个presentation (video, 67 mins) by Phil Nash,其中(从20:00到28:00)他很清楚地解释了部分和嵌套部分是如何工作的。