2017-05-13 16 views
1

下面的代码验证应用程序是否被禁止访问摄像头,同样我也有30个其他情况。 我想嘲讽设备离线测试所有这些,假设是一个函数调用在离线和在线测试一段代码,但计为2例xctests

func makeDeviceOffline(){ 

    .... 
} 

func testisCameraDisabled(){ 

    driver?.openApp() 
    dashBoard?.openCameraPage() 
    cameraPage?.openCamera() 
    XCTAssert(elementFinder?.isPolicyViolationAlertExists("camera")) 

} 

而不是重复每在离线模式下每一个案例,有没有更好的替代方法

在最后报告我需要要被计数为2个不同的测试案例

回答

1

假设:

  • 你有一个测试用例类MyTests这是一种带有一些测试方法的XCTestCase
  • 您想要创建与MyTests相同的另一个测试用例类MyOfflineTests,但makeDeviceOffline在每次测试之前运行。

然后:

  • 你也可以继承MyTests创建MyOfflineTests,并覆盖-setUp调用makeDeviceOffline()

例子:

class MyTests: XCTestCase { 
    func testIsCameraDisabled() { 
    // … 
    } 
} 

class MyOfflineTests: MyTests { 
    override func setUp() { 
    super.setUp() 
    makeDeviceOffline() 
    } 

    // All tests of `MyTests` are now run as offline tests. 
} 

注意:继承的测试将被发现并在运行时上市。只有在您运行MyOfflineTests类的测试至少一次之后,它们才会显示在Xcode的测试导航器面板中。它们将显示在整个测试运行输出中正确计数。