如何为下面提到的IBAction编写Kiwi测试用例

时间:2015-11-09 10:28:00

标签: swift unit-testing testing kiwi

我正面临着针对下述功能的正确测试案例的问题。

-(IBAction) returnToLogin:(UIStoryboardSegue*) segue {
  NSLog(@"kiwi tested");
}

我尝试了不同的方法,但它通过了测试用例

   it(@"Should unwind segue", ^{
        NSNumber *actionMethod = @([_vc respondsToSelector:@selector(returnToLogin:)]);
        [[actionMethod should] beTrue];
    });

你有什么想法吗?

1 个答案:

答案 0 :(得分:0)

returnToLogin:的当前实现中,您无法测试太多,因为该方法没有做任何事情。如果该方法将执行某些操作,例如更改视图控制器层次结构,那么您将能够对该行为进行断言。

但请考虑以下因素:

  1. IBAction的签名不正确,UIStoryboardSegue无法触发操作。
  2. 控制器有点难以测试,主要是因为它涉及测试UI更改
  3. 尝试将您想要测试的逻辑重构为业务类,并测试这些类;
  4. Apple自Xcode7和iOS9以来添加了对UI testing的支持,因此如果您想测试用户界面,可以使用