gpt4 book ai didi

ios - 在 Swift 中模拟 UIAlertView

转载 作者:行者123 更新时间:2023-11-29 11:58:48 24 4
gpt4 key购买 nike

我正在为我在 Objective C 中的项目快速编写 XCTest 用例。我有显示警报 View 的方法(已弃用,但我现在想保留它)。我想 mock 它以快速编写测试用例,但我没有得到它。

我对 OCMock 有点熟悉,据我所知,它是用 Objective C 构建的。在 Objective C 中,我们可以使用 OCMock 类返回预期结果并验证警报 View 显示方法。但是如何在 Swift 中做同样的事情呢?我尝试用与 Objective C 相同的方式编写,但很快它会为某些方法(如 OCMock 的“addReturn”)提供编译器错误。这可能是因为 OCMock 使用了 Objective C 运行时语言特性来创建 Mock,而这在 swift 中是不存在的。

-(void)showMyError {
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"Title"
message:@"Please press a button."
delegate:...
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"OK", nil];

[alert show];

}

有什么方法可以让我在 Swift 中为上述方法编写 XCTestcases 吗?

最佳答案

您可以使用依赖注入(inject)。为此,使用方法 initWithTitle:message:delegate:cancelButtonTitle:otherButtonTitles:show 创建一个协议(protocol)。创建一个符合该协议(protocol)的模拟类。将类对象注入(inject)到要测试的类中,并在要显示警报时实例化注入(inject)的类。

关于ios - 在 Swift 中模拟 UIAlertView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37931638/

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