我终于强加了一些TDD在我正在处理的一个项目上,并跑到边缘......我知道我想要的代码,但不知道如何测试吧:)OCMock测试一个对象被分配,并调用它的一个方法
我在寻找的实现是:
- (void) doSomething
{
FooBuilder *foo = [[FooBuilder alloc] init];
[foo doSomethingElseWithCompletionBlock:^{
[self somethingDone];
}];
}
所以我想我的测试来验证)测试方法分配一个新的FooBuilder
和b)该方法然后调用新对象的一种方法。
我该如何解决这个问题?我开始尝试嘲笑类方法,但很快就确定了这条路是疯狂的。
注意我没有在这个测试中测试FooBuilder本身,只是在那里进行了合作。
乔恩,感谢您的关注和详细的回复 - 但我想我在这里错过了一些东西。你诊断被测试的类和'FooBuilder'类之间的耦合是问题。在这样做的过程中,我觉得你正在简化更复杂的事情。我有一个显示Foos的对象Bar;要做到这一点,它需要用FooBuilder构建一个Foo。我觉得你要求我介绍一般性,我不需要仅仅为了简化测试。 – dpassage
我今天早上醒来意识到问题实际上只是一个类的依赖注入。所以我完全重写了我的答案。试试它的大小。 ...如果它仍然感觉过于复杂,让我知道,我会尝试进一步解释。 –
我仍然认为你没有得到我所要求的。我的问题是如何驱动OCMock API以确保我的被测对象正在进行正确的出站调用。你仍然试图将普遍性注入一个不需要它的类中。 – dpassage