任何人都知道如何在Swift中验证OCMock的期望? Swift不使用异常,因此XCTest不再包含XCTAssertNoThrow
。有没有其他方法来验证使用OCMock调用方法?我注意到在OCMock中,验证函数检查expectations
数组,因此我假设如果我们有访问权限,我们可以XCTAssertTrue(mock.expectations == 0)
。
试图解决其中一些更复杂的问题,因为在Swift中几乎没有关于XCTests的文档
答案 0 :(得分:1)
好的,这不是一个真正的答案,而是一个解决ObjC / Swift项目的问题。
编写一个将运行[mock verify]
并返回bool的Object Wrapper。
创建一个Obj-c H和M文件。 在.h
+ (BOOL)verifyMock:(id)mock;
在.m
+ (BOOL)verifyMock:(id)mock
{
BOOL called = YES;
@try {
[mock verify];
}
@catch (NSException *exception) {
called = NO;
}
@finally {
return called;
}
return called;
}
现在将此Obj-c文件添加到您的Bridging-Header文件中,以便swift可以访问。
在Swift XCTest文件中
XCTAssertTrue(YourWrapperClassName.verifyMock(mock), "Method was not called")