Ios 用OCUnit“嵌套”测试?

Ios 用OCUnit“嵌套”测试?,ios,objective-c,ocunit,Ios,Objective C,Ocunit,来自Rails/Rspec,我习惯于能够管理类似这样的测试: setup { //stuff for all tests goes here } tests for "foo" method setup { stuff specific to foo method here } test_foo_1 { ... } test_foo_2 { ... } end tests for "bar" method setup { // stuff specific to bar meth

来自Rails/Rspec,我习惯于能够管理类似这样的测试:

setup { //stuff for all tests goes here }
tests for "foo" method
  setup { stuff specific to foo method here }
  test_foo_1 { ... }
  test_foo_2 { ... }
end
tests for "bar" method
  setup { // stuff specific to bar method here }
  test_bar_1
end
因此,文件中的所有测试都会运行一些设置,然后对于某些测试,会有只适用于这些测试的附加设置

我知道安装和拆卸方法;我在这里要做的是计算出适用于(比如)该文件20个测试中的5个测试的设置代码,但是对于其他15个测试是不必要的,甚至是有害的

在为iOS构建时,OCUnit中是否可能有这样的组织?我现在看到的另一种选择是定义一些额外的设置方法,并通过适当的测试手动调用它们。

我想你的意思是OCUnit,我找不到任何称为OCTest的方法。如果是这种情况,那么就有从SenTestCase OCUnit基类继承的setUp和tearDown方法

从这篇文章中:

setUp:和tearDown:方法

有两种可选方法可以帮助您进行单元测试:setUp:和tearDown:。如果在运行多个测试之前要执行初始化代码,则可以将该代码放在setUp:方法中,以删除测试中的重复代码。方法包含清理代码。使用tearDown:方法的常见情况是释放在setUp:方法中分配的所有内存


OCUnit在运行每个测试之前调用setUp:方法,并在运行每个测试之后调用tearDown:方法。如果您的单元测试类有20个测试,OCUnit会调用setUp:和tearDown:20次。

在此基础上,有两个Objective-C测试框架,它们位于OCUnit/XTest之上,并提供类似rspec的测试组织。是一个,是另一个。Kiwi包括它自己的模拟和期望支持,而Specta将期望分解成一个单独的包,称为


我在几个项目中使用了Kiwi,它运行得很好。

你可能想研究一下,一个BDD风格的iOS测试框架,对于那些使用过RSpec的人来说应该很熟悉。是的,我还没有准备好SenTestCase具有设置和拆卸功能。我相信八重奏也用同样的方法。是的,我是说八重奏。我试图使问题更加清晰;我知道安装和拆卸,感觉它们不能完全满足我的需要。我想你可以用继承来完成你想要完成的事情。基类具有所有测试的setup方法。Foo类继承自Base,并通过[super setup]从Base的设置中获益;Foo类还可以在调用Base的setup之后处理自己的设置。你会有更多的文件,但这应该能满足你的要求。我希望避免文件成倍增加。我可以试一试。你想过吗?还没有;这一地区暂时处于次要地位。