Using Assertions with XCTAssertEqual and XCTAssertTrue in Swift
📖 Scenario: You are writing simple tests for a calculator app. You want to check if your calculator functions give the correct answers.
🎯 Goal: Build a small Swift test case using XCTAssertEqual and XCTAssertTrue to verify calculator results.
📋 What You'll Learn
Create variables with exact values
Use XCTAssertEqual to check if two values are equal
Use XCTAssertTrue to check if a condition is true
Print a success message if tests pass
💡 Why This Matters
🌍 Real World
Assertions help developers check if their code works correctly by automatically verifying expected results.
💼 Career
Knowing how to write assertions is important for software testing roles and ensures code quality in professional projects.
Progress0 / 4 steps
1
Create variables for calculator results
Create two variables called sumResult and isPositive. Set sumResult to the sum of 5 and 3, and set isPositive to true.
Swift
Hint
Use let to create constants. For sumResult, add 5 and 3. For isPositive, just assign true.
2
Write XCTAssertEqual to check sumResult
Write an XCTAssertEqual statement to check if sumResult equals 8.
Swift
Hint
Use XCTAssertEqual(value1, value2) to check if two values are equal.
3
Write XCTAssertTrue to check isPositive
Write an XCTAssertTrue statement to check if isPositive is true.
Swift
Hint
Use XCTAssertTrue(condition) to check if a condition is true.
4
Print success message
Write a print statement to display the text "All tests passed!".
Swift
Hint
Use print("All tests passed!") to show the message.
Practice
(1/5)
1. What does XCTAssertEqual(a, b) check in a Swift test?
easy
A. It checks if a and b are equal.
B. It checks if a is greater than b.
C. It checks if a is less than b.
D. It checks if a is not equal to b.
Solution
Step 1: Understand XCTAssertEqual purpose
XCTAssertEqual is used to compare two values for equality in tests.
Step 2: Match the function behavior
It returns success if both values are equal, otherwise it fails the test.
Final Answer:
It checks if a and b are equal. -> Option A
Quick Check:
XCTAssertEqual checks equality = B [OK]
Hint: XCTAssertEqual means values must be the same [OK]
Common Mistakes:
Confusing XCTAssertEqual with greater or less than checks
Thinking it checks inequality
Mixing it up with XCTAssertTrue
2. Which of the following is the correct syntax to check if a boolean variable isReady is true using XCTest?
easy
A. XCTAssertFalse(isReady)
B. XCTAssertEqual(isReady == true)
C. XCTAssert(isReady == true)
D. XCTAssertTrue(isReady)
Solution
Step 1: Identify the correct assertion for boolean true
XCTAssertTrue is designed to check if a condition is true.
Step 2: Compare options
XCTAssertTrue(isReady) uses XCTAssertTrue directly on isReady, which is the simplest and correct syntax.
Final Answer:
XCTAssertTrue(isReady) -> Option D
Quick Check:
Use XCTAssertTrue for true checks = A [OK]
Hint: Use XCTAssertTrue(variable) to check if true [OK]
Common Mistakes:
Using XCTAssertFalse instead of XCTAssertTrue
Using XCTAssertEqual unnecessarily for booleans
Writing XCTAssert without True or False
3. What will happen when this test runs?
let result = 5 + 3
XCTAssertEqual(result, 8)
medium
A. The test will pass because 5 + 3 equals 8.
B. The test will fail because 5 + 3 does not equal 8.
C. The test will cause a syntax error.
D. The test will crash at runtime.
Solution
Step 1: Calculate the expression
5 + 3 equals 8, so result is 8.
Step 2: Check XCTAssertEqual condition
XCTAssertEqual compares result (8) with 8, which are equal, so the test passes.
Final Answer:
The test will pass because 5 + 3 equals 8. -> Option A
Quick Check:
5 + 3 = 8, XCTAssertEqual passes = A [OK]
Hint: Calculate values, then check equality assertion [OK]
Common Mistakes:
Assuming test fails without checking actual values
Confusing syntax error with test failure
Thinking XCTAssertEqual compares types only
4. Identify the error in this test code:
let isActive = false
XCTAssertTrue(isActive)
medium
A. No error; the test will pass.
B. XCTAssertTrue cannot be used with boolean variables.
C. The test will fail because isActive is false but XCTAssertTrue expects true.
D. Syntax error due to missing parentheses.
Solution
Step 1: Check the value of isActive
isActive is set to false.
Step 2: Understand XCTAssertTrue behavior
XCTAssertTrue expects its argument to be true; since isActive is false, the test will fail.
Final Answer:
The test will fail because isActive is false but XCTAssertTrue expects true. -> Option C
Quick Check:
False value with XCTAssertTrue causes failure = D [OK]
Hint: XCTAssertTrue fails if condition is false [OK]
Common Mistakes:
Thinking test passes when condition is false
Confusing syntax error with test failure
Believing XCTAssertTrue only works with expressions
5. You want to test a function isEven(_ number: Int) -> Bool that returns true if a number is even. Which assertion correctly tests that isEven(4) returns true?
hard
A. XCTAssertEqual(isEven(4), true)
B. Both A and B are correct
C. XCTAssertTrue(isEven(4))
D. XCTAssertFalse(isEven(4))
Solution
Step 1: Understand the function output
isEven(4) returns true because 4 is even.
Step 2: Check assertion options
XCTAssertEqual(isEven(4), true) uses XCTAssertEqual to compare with true, which works. XCTAssertTrue(isEven(4)) uses XCTAssertTrue directly on the result, which also works.
Step 3: Determine correct choice
Both assertions correctly test that the function returns true.
Final Answer:
Both A and B are correct -> Option B
Quick Check:
Both XCTAssertEqual and XCTAssertTrue work for true checks = C [OK]
Hint: XCTAssertEqual and XCTAssertTrue both check true values [OK]
Common Mistakes:
Choosing only one assertion as correct
Using XCTAssertFalse incorrectly
Confusing equality with boolean checks
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.