gpt4 book ai didi

ios - 如何从 OCMock 开始并检查方法是否被调用

转载 作者:可可西里 更新时间:2023-11-01 03:36:44 24 4
gpt4 key购买 nike

我正在尝试处理 OCMock。我创建了简单的类 MyClass

@interface MyClass : NSObject
- (NSString *)simpleMethod;
@end

@implementation MyClass

- (NSString *)simpleMethod {
[self method];
return @"simple";
}

- (void)method {
NSLog(@"ABC");
}

@end

我想检查的是在调用 simpleMethod 时是否调用了方法 method。现在我有以下代码,但它不起作用:

- (void)testMethodInvoked
{
id mock = [OCMockObject mockForClass:[MyClass class]];
[[mock stub] simpleMethod];

SEL selector = NSSelectorFromString(@"method");
[[mock expect] methodForSelector:selector];
[mock verify];
}

我应该如何测试这个案例?我认为这很容易做到,但我不知道如何解决这个问题。

如何创建 mock 和调用方法 simpleMethod 调用方法 method

当前日志:

<unknown>:0: error: -[OCMockTestTests testOne] : OCMockObject[MyClass]: expected method was not invoked: methodForSelector:@selector(method)

最佳答案

您实际上从未创建要测试的类的对象。此外,您必须首先expect,然后调用该方法:

- (void)testMethodInvoked
{
// first create an object that you want to test:
MyClass *object = [[MyClass alloc] init];
// create a partial mock for that object
id mock = [OCMockObject partialMockForObject:object];
// tell the mock object what you expect
[[mock expect] method];
// call the actual method on the mock object
[mock simpleMethod];
// and finally verify
[mock verify];
}

关于ios - 如何从 OCMock 开始并检查方法是否被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20306281/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com