2017-05-13 15 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的測試導航器面板中。它們將顯示在整個測試運行輸出中正確計數。