如何在视图发生变化时进行单元测试?

时间:2018-05-18 01:58:25

标签: ios swift unit-testing xctest xcode-ui-testing

目前我正在尝试测试一些简单的功能:

class SampleViewController: UIViewController {

  @IBOutlet weak var sampleView: UIView!

  override func viewDidLoad() {
    super.viewDidLoad()   
  }
      func hideView() {
        sampleView.isHidden = true
      }

      func showView() {
        sampleView.isHidden = false
      }
}

以下是测试用例:

import XCTest
@testable import unitUITestPractice

class unitUITestPracticeTests: XCTestCase {

  var sut: SampleViewController?

    override func setUp() {
        super.setUp()

       sut = SampleViewController()
    }

    override func tearDown() {
     sut = nil
        super.tearDown()
    }

  func test_hideView() {
    sut?.hideView()
    XCTAssertNil(sut?.sampleView)
  }

  func test_showView() {
    sut?.showView()
    XCTAssertNotNil(sut?.sampleView)
  }
}

问题是我一直收到错误:

  

线程1:致命错误:在展开时出乎意料地发现nil   可选值

当它在测试用例中尝试并运行该函数时:

func hideView() {
    sampleView.isHidden = true //error here
  }

有没有人知道更好的方法来测试视图是否已更改?

0 个答案:

没有答案