2

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

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

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

注意:我创建了一个单例,但它根本不起作用。

4

2 回答 2

1

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

  1. 实例化一个测试用例对象。(它通常被称为“测试夹具”,其中夹具具有在多个测试中有用的其他对象的 ivars。)
  2. 调用设置
  3. 运行一种特定的测试方法
  4. 调用tearDown

对于您想要的公共变量,将其定义为 ivar。然后在-setUp. 如果之后需要显式清理,请在-tearDown.

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

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

于 2012-07-20T01:14:38.147 回答
0

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

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

于 2012-07-19T07:03:24.717 回答