Ios Swift中的mock视图

Ios Swift中的mock视图,ios,objective-c,xctest,ocmock,Ios,Objective C,Xctest,Ocmock,我正在用swift为目标C中的项目编写测试用例。 我有一个显示警报视图的方法(该方法已被弃用,但我想保留到现在)。我想嘲笑它在swift中编写测试用例,但我没有得到任何方法 我对OCMock有点熟悉,正如我所读到的,它是在Objective C中构建的。在Objective C中,我们可以使用OCMock类返回预期的结果,并验证警报视图显示方法。但在Swift中如何做到这一点呢? 我试着用与Objective C相同的方式编写代码,但在swift中,它为某些方法(如OCMock中的“addRet

我正在用swift为目标C中的项目编写测试用例。 我有一个显示警报视图的方法(该方法已被弃用,但我想保留到现在)。我想嘲笑它在swift中编写测试用例,但我没有得到任何方法

我对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吗?

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

请参阅