1
OCMock을 처음 사용했습니다. 제가 테스트 할 다음과 같은 간단한 코드가 -중간 변수가있는 OCMock 테스트 코드
@implementation ViewController
- (void)presentSomething:(NSString *)string {
NSLog(@"doSomethingElseWithString - %@", string);
}
- (BOOL)handleResult:(NSString *)result
{
BOOL handled = YES;
NSString *changedString = [result uppercaseString];
[self presentSomething:changedString];
return handled;
}
@end
을 내가 presentSomething은 내가 handleResult를 호출 한 후 올바른 인수와 함께 호출됩니다 확인하려면
- (void)testExample {
ViewController *vc = [ViewController new];
id mockViewController = OCMPartialMock(vc);
OCMStub([mockViewController presentSomething:@"1234"]);
BOOL handled = [vc handleResult:@"1234"];
XCTAssertTrue(handled);
OCMVerify([mockViewController presentSomething:@"1234"]);
}
을 다음과 같이 나는 시험이있다.
테스트는 presentSomething 메서드가 호출되지 않았 음을 확인하거나 실패하는 동안 EXC_BAD_ACCESS를 제공합니다.
handleResult 메서드를 다음과 같이 변경하면 테스트가 실행되고 전달됩니다.
- (BOOL)handleResult:(NSString *)result
{
BOOL handled = YES;
[self presentSomething:result];
return handled;
}
중간 [result uppercaseString] 및 변수가 문제를 일으킨 것으로 보입니다. OCMock 또는 OCMock의 버그를 어떻게 사용하고 있습니까?