Unit testing SenTestKit:在所有测试运行后进行清理?
我在XCode中使用SenTest进行单元测试。我必须运行一个命令行任务来测试我的单元测试。我可以在我的测试类(当然是SenTestCase的子类)的+initialize方法中实现这一点 我想在测试完成后终止命令行任务。因为没有+initialize的对立面,我被难住了Unit testing SenTestKit:在所有测试运行后进行清理?,unit-testing,xcode,ocunit,Unit Testing,Xcode,Ocunit,我在XCode中使用SenTest进行单元测试。我必须运行一个命令行任务来测试我的单元测试。我可以在我的测试类(当然是SenTestCase的子类)的+initialize方法中实现这一点 我想在测试完成后终止命令行任务。因为没有+initialize的对立面,我被难住了 有没有什么方法可以将SenTest类子类化以完成我忽略的任务?您应该了解它或它的进一步派生。这两个(我认为)至少都提供了类级设置和拆卸。如果您确实希望在运行所有测试之前运行一个命令行,然后在运行测试之后运行第二个命令行(可能要
有没有什么方法可以将SenTest类子类化以完成我忽略的任务?您应该了解它或它的进一步派生。这两个(我认为)至少都提供了类级设置和拆卸。如果您确实希望在运行所有测试之前运行一个命令行,然后在运行测试之后运行第二个命令行(可能要终止第一个命令行),我将修改运行单元测试的shell脚本构建阶段(UnitTest bundle目标构建阶段的最后一步)。不要在+initialize中运行命令行工具。当类第一次被发送任何消息时,Objective-C运行时会发送该消息 相反,在测试的
+设置方法中运行命令行工具。(请注意,我实际上指的是+setUp
,而不是-setUp
;很多人似乎对类和实例方法之间的区别有点模糊。)
在这种情况下,在运行SenTestCase
子类中的任何测试之前,OCUnit调用类设置
方法,在运行SenTestCase
子类中的所有测试之后,OCUnit调用类拆卸
方法
因此,特定的SenTestCase
子类的总体流程是:
- 将
+设置发送到SomeTestCase
- 对于在
SomeTestCase
中开始的每个test
方法(称之为test\uuuuuuuuuuuu
)
- 创建
SomeTestCase的新实例
- 发送
-设置
- 发送
-测试
- 向其发送
-拆卸
- 放开它
- 发送
+tearDown
到SomeTestCase
这样,如果在运行任何-test
方法之前需要做一些事情,或者在运行所有-test
方法之后需要做一些事情,那么就有一个确定的点可以实现这一点。(而不是依赖于内存管理,内存管理不是以同样的方式确定的,如果您使用GC,可能根本不确定。)您不需要任何额外的框架来进行类级设置和拆卸;这些都是OCUnit的一部分,我还没有找到任何关于+setUp/+teardown方法的内容。谢谢你的启示。