unit-testing - SenTestKit : cleaning up after ALL tests have run?

标签 unit-testing xcode ocunit

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

我想在测试完成后终止命令行任务。由于 +initialize 没有反义词,所以我很难过。

有什么方法可以将 SenTest 类子类化来做到这一点,我忽略了吗?

最佳答案

不要在 +initialize 中运行你的命令行工具。这是在类第一次发送任何消息时由 Objective-C 运行时发送的。

相反,在测试的 +setUp 中运行命令行工具。方法。 (请注意,我的意思确实是 +setUp 而不是 -setUp ;很多人似乎对类和实例方法之间的区别有点模糊。)

在这种情况下,一个 类(class) setUp方法在 之前被 OCUnit 调用任何 中的测试 SenTestCase子类被运行,一个 类(class) tearDown OCUnit 在 之后调用方法全部 SenTestCase 中进行测试子类 ar 运行。

因此,特定 SenTestCase 的整体流量子类是:

  • 发送 +setUpSomeTestCase
  • 每个testSomeTestCase 开始的方法(称之为 test___)
  • 创建 SomeTestCase 的新实例
  • 发送 -setUp给它
  • 发送 -test___给它
  • 发送 -tearDown给它
  • 释放它
  • 发送 +tearDownSomeTestCase

  • 如果您有任何事情需要在您的 -test 之前完成,请这样做。方法运行,或者在你所有的 -test 之后需要做的事情方法运行时,有一个确定性的点可以实现。 (而不是依赖于内存管理,这不是以相同的方式确定的,如果您使用 GC,则可能根本不是确定的。)

    关于unit-testing - SenTestKit : cleaning up after ALL tests have run?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3630339/

    相关文章:

    objective-c - 导入 modulename-Swift.h 文件到 ObjC .h 文件

    iphone - 如何编写在框中绘制文本/字符串的测试用例?

    node.js - 如何在 Node js 中使用 mocha 对控制台输出进行单元测试?

    php - Laravel 测试 - 使用 Mockery 抛出异常

    swift - 添加约束困惑 View

    iphone - 如何等待单元测试动画完成

    c++ - 如何为 C++ 类和结构自定义 STAsertEquals 输出?

    unit-testing - Scala - 单元测试设置(使用访问修饰符限定符?)

    unit-testing - @WithUserDetails 似乎不起作用

    ios - 在 Xcode 中查找链接到项目的框架