
static var allTests = [
testCase(CalculatorTests.testAddition),
testCase(CalculatorTests.testSubtraction)
]
测试异步方法
let expectation = XCTestExpectation(description: "HTTP request") expectation.fulfill() wait(for: [expectation], timeout: 5.0)
import XCTest
@testable import ARDemo
//创建CalculatorTests类,继承自XCTestCase
class CalculatorTests: XCTestCase {
var calculator: Calculator!
//测试开始前,初始化要使用的环境变量
override func setUp() {
super.setUp()
calculator = Calculator()
}
//测试结束后,清理使用的环境变量
override func tearDown() {
super.tearDown()
calculator = nil
}
//要控制测试用例的执行顺序
//1.可以通过test+101这种形式,顺序会根据test后面的数字,先小,后大的顺序进行执行
func test101Addition() {
let result = calculator.add(2, 3)
XCTAssertEqual(result, 5, "Addition of 2 and 3 should be 5")
}
func test102Addition() {
let result = calculator.add(2, 3)
XCTAssertEqual(result, 5, "Addition of 2 and 3 should be 5")
}
func test103Addition() {
let result = calculator.add(2, 3)
XCTAssertEqual(result, 5, "Addition of 2 and 3 should be 5")
}
//2.使用测试用例组的形式,执行顺序会按照组中的顺序,由上到下进行执行
func testAddition() {
let result = calculator.add(2, 3)
XCTAssertEqual(result, 5, "Addition result is incorrect")
}
func testSubtraction() {
let result = calculator.subtract(5, 2)
XCTAssertEqual(result, 3, "Subtraction result is incorrect")
}
//静态变量allTests中放置排序后的测试用例
static var allTests = [
testCase(CalculatorTests.testAddition),
testCase(CalculatorTests.testSubtraction)
]
//测试异步方法
func testAsyncHTTPRequest() {
let expectation = XCTestExpectation(description: "HTTP request")
// 调用异步HTTP请求方法
asyncHTTPRequest { response in
// 处理回调结果
XCTAssertTrue(response.success)
expectation.fulfill()
}
// 等待异步操作完成
wait(for: [expectation], timeout: 5.0)
}
//测试功能的执行性能
func testPerformance() {
measure([.wallClockTime, .userTime]) {
// 执行需要测试性能的代码块
}
}
}
class Calculator {
func add(_ a: Int, _ b: Int) -> Int {
return a + b
}
func subtract(_ a: Int, _ b: Int) -> Int {
return a - b
}
}