Con*_*sed 2 function xctest xcode8
XCTest测试功能按字母顺序调用(在Xcode 8之前)。使用Xcode 8,我无法假定系统以哪种顺序调用测试用例。
有人可以照亮它吗?
类中的测试在Xcode 8中以随机顺序运行。这鼓励测试是独立且可重复的。
我假设您要按特定的顺序运行测试,因为它们彼此“连锁”。例如,test_A
登录假用户test_B
并将商品添加到购物车。应避免这类测试,因为它们之间的相互依赖度很高。如果您想test_F
独自跑步怎么办?你不应该运行A
通过E
只是为了验证F
仍然有效。另外,您可能会引入测试污染,这种污染会以您尚未意识到的方式影响其他测试。
也就是说,在测试之间具有共同或共享的行为很好,甚至可以避免。您可以将此登录名放入setUp
方法中,或提取私有帮助器方法以处理特定事件。例如,这是一个非常高级的示例。
class AppTests: XCTestCase {
let subject = ViewController()
func setUp() {
super.setUp()
login(email: "user@example.com", 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() { ... }
}
Run Code Online (Sandbox Code Playgroud)