如何在Xcode 8中按顺序调用XCTest测试用例函数?

时间:2016-09-29 09:07:48

标签: function xcode8 xctest

XCTest测试函数按字母顺序调用(在Xcode 8之前)。使用Xcode 8,我无法假设系统调用测试用例的顺序。

有人可以点亮吗?

1 个答案:

答案 0 :(得分:4)

类中的测试在Xcode 8中以随机顺序运行。这鼓励测试独立可重复

我假设您希望按特定顺序运行测试,因为它们彼此“链接”。例如,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() { ... } } 方法或extract private helper methods中以处理特定事件。例如,这是一个非常的高级示例。

QVector<float> below_main_diagonal, 
QVector<float>  main_diagonal, 
QVector<float>  beyond_main_diagonal