Иными словами, существуют ли в XCTest методы для pre/post conditions?
Существуют.
Ваш тестовый класс должен наследоваться от XCTestCase, и тогда можно имлементить два метода:
- setUp (выполняется перед каждым тестом) - тут можно, например, стартовать приложение или выполнять другие preconditions
- tearDown (выполняется после каждого теста) - тут можно, например, закрывать приложение или выполнять другие postconditions
Как это выглядит в коде:
class BaseTest: XCTestCase {
override func setUp() {
super.setUp()
// This is the setUp() instance method.
// It is called before each test method begins.
// Set up any per-test state here.
}
override func tearDown() {
// This is the tearDown() instance method.
// It is called after each test method completes.
// Perform any per-test cleanup here.
super.tearDown()
}
}
Спасибо большое за ответ.
Дело в том, что нужны 2 preconditions:
- Первый - выполняется 1 раз перед всеми тестами (@BeforeTest)
- Второй - выполняется перед каждым тестом (@BeforeMethod)
Заранее спасибо
Чтобы выполнить прекондишн перед классом (всеми тестами в классе) или посткондишн после класса (всех тестов в классе), Вам нужно использовать методы тестового класса (не инстанса):
override class func setUp() {
super.setUp()
// This is the setUp() class method.
// It is called before the first test method begins.
// Set up any overall initial state here.
}
override class func tearDown() {
// This is the tearDown() class method.
// It is called after all test methods complete.
// Perform any overall cleanup here.
super.tearDown()
}