Back
Syntax
Study
Editor
Mode:
HTML
CSS
JavaScript
PHP
Reset
Run »
HTML / CSS / JS
import XCTest // Class under test struct Calculator { enum CalcError: Error { case divisionByZero } func divide(_ a: Double, by b: Double) throws -> Double { guard b != 0 else { throw CalcError.divisionByZero } return a / b } func add(_ a: Double, _ b: Double) -> Double { a + b } } // XCTest class CalculatorTests: XCTestCase { var sut: Calculator! override func setUp() { super.setUp() sut = Calculator() } override func tearDown() { sut = nil super.tearDown() } func testAddition() { XCTAssertEqual(sut.add(2, 3), 5) XCTAssertEqual(sut.add(-1, 1), 0) } func testDivision() throws { let result = try sut.divide(10, by: 2) XCTAssertEqual(result, 5, accuracy: 0.001) } func testDivisionByZeroThrows() { XCTAssertThrowsError(try sut.divide(5, by: 0)) { error in XCTAssertTrue(error is Calculator.CalcError) } } func testPerformance() { measure { for _ in 0..<1000 { _ = sut.add(1.5, 2.5) } } } }
Result
Open