XCTest 测试函数按字母顺序调用(在 Xcode 8 之前)。使用 Xcode 8,我无法假设系统调用测试用例的顺序。
有人可以阐明它吗?
类内的测试在 Xcode 8 中以随机顺序运行。这鼓励测试独立的 and 可重复的.
我假设您想按特定顺序运行测试,因为它们彼此“链接”。例如,test_A
登录一个假用户并test_B
将商品添加到购物车。应避免这些类型的测试,因为它们过于依赖彼此。如果你想跑步怎么办test_F
独自的?你不应该跑A
通过E
只是为了验证这一点F
仍然有效。此外,您可能会引入测试污染,从而以您尚未意识到的方式影响其他测试。
也就是说,在测试之间具有共同或共享的行为是很好的,甚至是值得鼓励的。您可以将此登录名放入setUp
方法或提取私有辅助方法来处理特定的事件。例如,这是一个very高级示例。
class AppTests: XCTestCase {
let subject = ViewController()
func setUp() {
super.setUp()
login(email: "[email protected]", password: "password")
}
func test_AddingItemsToCart() {
addItemToCart(21)
XCTAssertEqual(subject.itemsInCartLabel.text, "1")
}
func test_Checkout() {
addItemToCart(15)
checkout()
XCTAssertEqual(subject.totalPriceLabel.text, "$21")
}
private func login(email: String, password: String) { ... }
private func addItemToCart(item: Int) { ... }
private func checkout() { ... }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)