【发布时间】:2014-12-09 00:02:33
【问题描述】:
我正在使用文档打印机编写集成测试,并且在单个套件中的所有单元测试都完成后,我需要它来剪切文档。
我用过的其他测试框架有 tearDownAfterClass 类型的操作,但 XCTest 似乎没有?
反正我可以模拟这个吗?
【问题讨论】:
标签: xctest
我正在使用文档打印机编写集成测试,并且在单个套件中的所有单元测试都完成后,我需要它来剪切文档。
我用过的其他测试框架有 tearDownAfterClass 类型的操作,但 XCTest 似乎没有?
反正我可以模拟这个吗?
【问题讨论】:
标签: xctest
我用过的其他测试框架有一个 tearDownAfterClass 类型的动作,但 XCTest 似乎没有?
XCTest 正是具有该功能。 tearDown有两个版本,一个是实例方法,一个是类方法:
- (void)tearDown; // this gets called after each test
+ (void)tearDown; // this gets called after all tests in the suite
同样,setUp 也有实例和类版本,因此您可以在每次测试之前或在套件运行之前进行一次设置工作。
【讨论】:
对此有一个粗略的解决方案。事实证明,XCTest 总是按字母顺序运行测试,比如:
/**
* Tests are run in alphabetical order, hence the Z so this runs last.
*/
- (void)testZTearDownAfterClass
{
// ...
}
setUpBeforeClass 反过来也是如此:
- (void)test_setUpBeforeClass
{
// ...
}
【讨论】: