【问题标题】:Mocking UIAlertView in Swift在 Swift 中模拟 UIAlertView
【发布时间】:2016-10-22 05:56:02
【问题描述】:

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

我对 OCMock 有点熟悉,我读到它是用 Objective C 构建的。在 Objective C 中,我们可以使用 OCMock 类来返回预期结果并验证警报视图显示方法。但是如何在 Swift 中做同样的事情呢? 我尝试使用与 Objective C 相同的方式编写,但在 swift 中,它会为某些方法(如 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 吗?

【问题讨论】:

标签: ios objective-c xctest ocmock


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2014-08-02
    • 1970-01-01
    • 2014-07-27
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    • 1970-01-01
    相关资源
    最近更新 更多