Ocunit - 创建单例测试类以在类之间共享代码

时间:2012-07-18 13:01:36

标签: objective-c unit-testing singleton ocunit

我刚开始为我的代码编写单元测试用例。 写作时我刚刚吸收了许多测试用例类正在使用一些通用代码,并且在类中需要一个公共变量。

所以我决定创建一个单例类来保存所有这些值。其中这个单例类将通过sentesting继承。

所以这里我的问题是可以创建一个单例测试类。 ?

注意:我创建了一个单身人士,但它根本没有工作。

2 个答案:

答案 0 :(得分:1)

OCUnit与其他xUnit框架共享相同的体系结构。要运行测试用例,

  1. 实例化测试用例对象。 (它通常被称为“测试夹具”,其中夹具具有其他对象的ivars,可用于多个测试。)
  2. 调用setUp
  3. 运行一种特定的测试方法
  4. 致电tearDown
  5. 对于您想要的公共变量,将其定义为ivar。然后在-setUp中初始化它。如果之后需要进行显式清理,请在-tearDown中执行此操作。

    避免在测试之间共享对象非常重要,因为每个测试都应该具有一致的通过/失败行为。共享对象会污染此对象,从而在测试之间创建潜在的依赖关系。由于单例是共享对象的常用方法,因此它们通常不会影响单元测试策略。

    有关使用Objective-C或Swift在Xcode中进行单元测试(特别是测试驱动开发)的分步示例,请参阅https://qualitycoding.org/tdd-kata/

答案 1 :(得分:0)

是的,我在这里发现我们不能创建一个继承sentesting的单例类。

我们只能创建从NSObject继承的单例。