【发布时间】:2012-06-12 15:45:05
【问题描述】:
我是 xcode 和 Objective-c 的新手。我还决定在我的项目中添加单元(逻辑)测试。测试工作正常(使用 OCUnit 和 SenTestingKit)。我不明白build for testing 是如何工作的。让我解释一下..
我编写了一个简单的单元测试来检查一个空数组 - 使用
STAssertTrue([array count] ==0, @"Should have an empty array, but it is not");
这构建得很好并且测试通过了。
现在,如果我将其从 0 更改为 1,则构建失败。为什么构建失败对我来说没有意义 - 代码没有任何错误。在我看来,构建实际上正在运行代码并且断言正在断言。
如果方法要返回一个包含一个元素的数组,如何通过代码一步来确定方法中的问题?在这个简单的例子中问题很明显,但如果要测试的方法更深入,则需要逐步解决问题。像这样运行单元测试似乎不太容易使用——除非我完全遗漏了一些东西。
我的问题是:如何逐步完成失败的单元测试?
【问题讨论】:
-
您能否更明确地说明您采取的步骤?我不清楚问题是什么。似乎您是在说如果您的单元测试失败,您的构建就会失败?不应该是这样,我只是验证了它不在我自己的项目中。
-
我的某些设置可能不正确,希望在这里找到解决问题的帮助。问题是,如果单元测试工作正常并且构建成功,如果像 STAssertEqual (x == 2) 中那样更改简单的东西,为什么构建会失败; // 其中 x 是 3。它仍然应该毫无问题地构建,并且开发人员应该能够单步执行代码并查看 x 为 3 的原因并解决问题,但事实并非如此。因此,当有更复杂的代码时,构建会失败,并且无法执行和单步执行代码。难道我做错了什么?我的期望落空了吗?
-
发布一个其他人可以打开的示例项目可能会对您有所帮助,或者为其他人提供具体说明以便能够轻松地重新创建演示项目。
-
谢谢,但你可能想把它记下来。您是否希望整个互联网都查看您的所有源代码?无论如何,如果您从头开始创建一个新项目来展示您的问题,这对您和我都会更有帮助。也就是说,我注意到您为您的项目打开了“构建后测试”设置。这可能是问题吗?如果是这样,我会更新我的答案。
标签: unit-testing xcode4.3 sentestingkit