gpt4 book ai didi

ios - OCMock:返回与通过参数获取相同的值

转载 作者:行者123 更新时间:2023-12-01 19:43:45 27 4
gpt4 key购买 nike

在使用 OCMock 框架编写单元测试时,我遇到了一些具体的问题。

假设我有一些带有一个参数的方法。我需要的是 stub 该方法并返回相同的值。该值是计算出来的,所以我不能只通过通常的 stub 返回一些预定义的值。

该方法的伪声明(objc):

- (id)doSomething:(id)value;

最佳答案

您可以使用 OCMock 的 Method Swizzling 功能:

@implementation OCmockPlaygroundTests

- (void)testStub{

TestClass * mockObject = OCMPartialMock([TestClass new]);

OCMStub([mockObject doSomethingWith:OCMOCK_ANY]).andCall(self, @selector(doSomethingWith:));
NSString * testInput = @"TEST_INPUT";
NSString * result = [mockObject doSomethingWith:testInput];
XCTAssertTrue([testInput isEqualToString:result]);
}

- (NSString *)doSomethingWith:(NSString *)input{
return input;
}

@end

而不是 doSomethingWith: TestClass 的方法OCMock 将改为调用仅返回输入的测试用例中定义的实现。

关于ios - OCMock:返回与通过参数获取相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51516232/

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