Ios 离线和在线测试一段代码,但在测试中计为两种情况

Ios 离线和在线测试一段代码,但在测试中计为两种情况,ios,swift,xctest,Ios,Swift,Xctest,下面的代码验证应用程序是否不允许访问摄像头,类似地,我还有30个其他案例。 我想通过模拟设备离线来测试所有这些,假设这是一个函数调用 func makeDeviceOffline(){ .... } func testisCameraDisabled(){ driver?.openApp() dashBoard?.openCameraPage() cameraPage?.openCamera() XCTAssert(elementFinder?.isPolic

下面的代码验证应用程序是否不允许访问摄像头,类似地,我还有30个其他案例。 我想通过模拟设备离线来测试所有这些,假设这是一个函数调用

func makeDeviceOffline(){

   ....
}

func testisCameraDisabled(){

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

}
除了在脱机模式下重复每种情况,还有更好的替代方法吗

在最终报告中,我需要将其计算为两个不同的测试用例,假设:

  • 您有一个测试用例类
    MyTests
    ,它是一种带有一些测试方法的
    XCTestCase
  • 您希望创建另一个与
    MyTests
    相同的测试用例类
    myfflinetests
    ,只是
    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.
}
注意:继承的测试将在运行时被发现并列出。在您至少运行
myoflinetests
类的测试一次之后,它们才会显示在Xcode的测试导航器面板中。它们将在整个测试运行输出中显示为正确计数