Bird
Raised Fist0
iOS Swiftmobile~5 mins

XCTest framework in iOS Swift - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the XCTest framework used for in iOS development?
XCTest is used to write and run tests that check if your iOS app works correctly. It helps find bugs early by testing code automatically.
Click to reveal answer
beginner
How do you define a test case class in XCTest?
You create a class that inherits from XCTestCase. Inside, you write test methods that start with the word 'test'.
Click to reveal answer
intermediate
What is the purpose of the setUp() and tearDown() methods in XCTest?
setUp() runs before each test to prepare the environment. tearDown() runs after each test to clean up. They help keep tests independent.
Click to reveal answer
beginner
How do you check if two values are equal in an XCTest test method?
Use XCTAssertEqual(value1, value2) to verify that both values are the same. If not, the test fails.
Click to reveal answer
beginner
What happens when an assertion like XCTAssertTrue fails during a test?
The test is marked as failed but continues running. This shows that the code did not behave as expected.
Click to reveal answer
Which class should your test classes inherit from when using XCTest?
ANSObject
BUIViewController
CXCTestCase
DAppDelegate
What prefix must test method names start with in XCTest?
Atest
Bverify
Crun
Dcheck
What is the role of the tearDown() method in XCTest?
APrepare test data before each test
BClean up after each test
CRun all tests automatically
DDefine test cases
Which assertion checks if a condition is true in XCTest?
AXCTAssertTrue
BXCTAssertEqual
CXCTAssertFalse
DXCTFail
What happens if an assertion fails during a test?
ATest is marked as failed and stops
BTest is marked as passed
CTest is skipped
DTest continues running
Explain how to create and run a simple test case using XCTest in Swift.
Think about the class, method names, and how you check results.
You got /4 concepts.
    Describe the purpose of setUp() and tearDown() methods in XCTest and why they are important.
    Consider how tests stay independent and clean.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of the XCTest framework in iOS development?
      easy
      A. To manage app navigation between screens
      B. To write automated tests that check app behavior
      C. To design user interfaces visually
      D. To optimize app performance during runtime

      Solution

      1. Step 1: Understand XCTest role

        XCTest is designed to help developers write tests that automatically verify if the app works as expected.
      2. Step 2: Compare options with XCTest purpose

        Only To write automated tests that check app behavior describes writing automated tests, which matches XCTest's main use.
      3. Final Answer:

        To write automated tests that check app behavior -> Option B
      4. Quick Check:

        XCTest = Automated testing [OK]
      Hint: XCTest is for testing, not UI or navigation [OK]
      Common Mistakes:
      • Confusing XCTest with UI design tools
      • Thinking XCTest manages app navigation
      • Assuming XCTest improves runtime speed
      2. Which of the following is the correct way to declare a test method inside an XCTestCase subclass?
      easy
      A. func TestExample() { }
      B. func exampleTest() { }
      C. func testExample() { }
      D. test func example() { }

      Solution

      1. Step 1: Recall XCTest method naming rules

        Test methods must start with 'test' and be declared as functions with no parameters.
      2. Step 2: Check each option

        func testExample() { } uses 'func testExample() { }' which follows the naming convention. Others either have wrong order, capitalization, or syntax.
      3. Final Answer:

        func testExample() { } -> Option C
      4. Quick Check:

        Test methods start with 'test' [OK]
      Hint: Test methods must start with 'test' keyword [OK]
      Common Mistakes:
      • Starting method name without 'test'
      • Capitalizing 'Test' instead of 'test'
      • Incorrect function syntax
      3. What will be the result of this test method when run?
      func testSum() {
        let result = 2 + 3
        XCTAssertEqual(result, 5)
      }
      medium
      A. Test passes successfully
      B. Test fails with assertion error
      C. Test causes a compile-time error
      D. Test is ignored and not run

      Solution

      1. Step 1: Evaluate the calculation

        The code calculates 2 + 3 and stores 5 in 'result'.
      2. Step 2: Check the assertion

        XCTAssertEqual compares 'result' with 5, which is true, so the assertion passes.
      3. Final Answer:

        Test passes successfully -> Option A
      4. Quick Check:

        2 + 3 equals 5, assertion passes [OK]
      Hint: If values match in XCTAssertEqual, test passes [OK]
      Common Mistakes:
      • Assuming test fails if no explicit pass message
      • Confusing compile errors with assertion failures
      • Thinking test is skipped without reason
      4. Identify the error in this test method:
      func testDivide() {
        let result = 10 / 0
        XCTAssertEqual(result, 0)
      }
      medium
      A. XCTAssertEqual syntax is incorrect
      B. Missing return type in function declaration
      C. Test method name does not start with 'test'
      D. Division by zero causes runtime crash

      Solution

      1. Step 1: Analyze the division operation

        Dividing 10 by 0 causes a runtime error (crash) because division by zero is undefined.
      2. Step 2: Check other parts

        XCTAssertEqual syntax is correct, method name starts with 'test', and return type is not needed for test methods.
      3. Final Answer:

        Division by zero causes runtime crash -> Option D
      4. Quick Check:

        Division by zero crashes app [OK]
      Hint: Division by zero always crashes at runtime [OK]
      Common Mistakes:
      • Thinking XCTAssertEqual syntax is wrong
      • Believing test method needs return type
      • Ignoring runtime errors from invalid math
      5. You want to test a function that returns an optional string. Which assertion correctly verifies the function returns a non-nil value?
      func testOptionalString() {
        let result = getOptionalString()
        // Which assertion to use?
      }
      hard
      A. XCTAssertNotNil(result)
      B. XCTAssertEqual(result, "")
      C. XCTAssertTrue(result == nil)
      D. XCTAssertFalse(result != nil)

      Solution

      1. Step 1: Understand the goal

        We want to check that 'result' is not nil, meaning it contains a value.
      2. Step 2: Match assertion to goal

        XCTAssertNotNil checks that the value is not nil, which fits perfectly. Other options either check for empty string or nil incorrectly.
      3. Final Answer:

        XCTAssertNotNil(result) -> Option A
      4. Quick Check:

        Use XCTAssertNotNil to check non-nil values [OK]
      Hint: Use XCTAssertNotNil to confirm value exists [OK]
      Common Mistakes:
      • Using XCTAssertEqual with empty string instead of nil check
      • Confusing XCTAssertTrue with wrong condition
      • Using XCTAssertFalse with incorrect logic
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard