gpt4 book ai didi

swift - Xcode 6、Swift和mock验证无一异常(exception)

转载 作者:搜寻专家 更新时间:2023-10-31 23:05:46 25 4
gpt4 key购买 nike

有人知道如何在 Swift 中验证 OCMock expect 吗? Swift 不使用异常,因此 XCTest 不再包含 XCTAssertNoThrow。有没有其他方法可以验证 OCMock 调用了一个方法?我注意到在 OCMock 中,验证函数检查 expectations 数组,所以我假设如果我们有访问权限,我们可以执行 XCTAssertTrue(mock.expectations == 0)

试图弄清楚其中一些更复杂的事情,因为关于 Swift 中的 XCTests 的文档很少甚至没有

最佳答案

好的,这不是真正的答案,而是针对 ObjC/Swift 项目的变通方法。编写一个将运行 [mock verify] 并返回 bool 的对象包装器。

创建一个 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), "方法未被调用")

关于swift - Xcode 6、Swift和mock验证无一异常(exception),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24049735/

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