Unit testing SenTestKit:在所有测试运行后进行清理?

Unit testing SenTestKit:在所有测试运行后进行清理?,unit-testing,xcode,ocunit,Unit Testing,Xcode,Ocunit,我在XCode中使用SenTest进行单元测试。我必须运行一个命令行任务来测试我的单元测试。我可以在我的测试类(当然是SenTestCase的子类)的+initialize方法中实现这一点 我想在测试完成后终止命令行任务。因为没有+initialize的对立面,我被难住了 有没有什么方法可以将SenTest类子类化以完成我忽略的任务?您应该了解它或它的进一步派生。这两个(我认为)至少都提供了类级设置和拆卸。如果您确实希望在运行所有测试之前运行一个命令行,然后在运行测试之后运行第二个命令行(可能要

我在XCode中使用SenTest进行单元测试。我必须运行一个命令行任务来测试我的单元测试。我可以在我的测试类(当然是SenTestCase的子类)的+initialize方法中实现这一点

我想在测试完成后终止命令行任务。因为没有+initialize的对立面,我被难住了


有没有什么方法可以将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方法的内容。谢谢你的启示。