使用OCMock和GHUnit测试drawRect

时间:2012-02-07 20:02:31

标签: macos cocoa

我有一个自定义视图,用作NSStatusItem的视图。我想测试在调用setNeedsDisplay之后调用drawRect。

    CustomView * customView = [[CustomView alloc] initWithFrame:...];

    id mockView = [OCMockObject partialMockForClass:customView];
    [[mockView expect] setNeedsDisplay:YES];
    [[mockView expect] drawRect:NSMakeRect(0, 0, 150, 22)];

    [customView setString:@"SomeString"]; // This causes the drawRect message to be sent to customView

    [mockView verify];`

最值得赞赏的任何帮助。

我得到的错误是“未调用预期方法:drawRect”

我也在使用GHUnit并覆盖了shouldRunOnMainThread以返回YES。

1 个答案:

答案 0 :(得分:0)

将从ViewController调用drawRect:选择器。在上面的测试代码中,您已经创建了视图,但是您没有将其添加到任何视图中,因此它根本不会被绘制,无论类中的属性如何表现。

如果您创建了一个测试视图控制器,将自定义视图添加到其中,然后调用setString选择器我会打赌您的验证将通过。