如何监视新西兰的一个类方法?

时间:2014-12-22 13:13:25

标签: ios unit-testing kiwi

我已经通过类模拟查看了各种示例,如下所示:

https://groups.google.com/forum/#!topic/kiwi-bdd/hrR2Om3Hv3I

https://gist.github.com/sgleadow/4029858

Mocking expectations in Kiwi (iOS) for a delegate

班级Test有一个班级方法fetch

我想要实现的是在我想要测试的类的工作期间查看类中的方法是否被调用。

我的所作所为:

    it(@"test", ^{
        id mock = [KWMock mockForClass:[Test class]];
        [[mock should] receive:@selector(fetch)];
        Repository *rep = [[Repository sharedInstance] rep]; //method `rep` invokes [Test fetch] at some point
    });

测试失败并出现以下错误:

[FAILED], expected subject to receive -fetch exactly 1 time, but received it 0 times

我做错了什么?间谍机制应如何对类方法起作用?

1 个答案:

答案 0 :(得分:1)

[[Test should] receive:@selector(fetch)];

这就是你应该如何检查它,因为它的方法类不是你不需要模拟类对象的实例类。您编写时的自动完成功能可能无法显示,因此您必须强制执行此操作。