Bird
Raised Fist0
Kotlinprogramming~10 mins

Kotlin test assertions - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Kotlin test assertions
Write test function
↓
Call function to test
↓
Use assertion to check result
↓
Assertion passes?
No→Test fails, show error
Yes↓
Test passes, continue or finish
This flow shows how a Kotlin test calls a function, checks the result with assertions, and passes or fails the test.
Execution Sample
Kotlin
fun add(a: Int, b: Int) = a + b

fun testAdd() {
    val result = add(2, 3)
    assert(result == 5) { "Expected 5 but got $result" }
}
This code tests the add function by asserting the result equals 5.
Execution Table
StepActionEvaluationResult
1Call add(2, 3)2 + 35
2Store resultresult = 55
3Assert result == 55 == 5True, assertion passes
4Test endsNo errorsTest passes
💡 Assertion passes because result equals expected value 5
Variable Tracker
VariableStartAfter Step 1After Step 2Final
resultundefined555
Key Moments - 2 Insights
Why does the test fail if the assertion condition is false?
Because the assertion throws an error stopping the test, as shown in the execution_table step 3 where a false condition would cause failure.
What does the message inside assert { } do?
It shows a clear error message if the assertion fails, helping to understand what went wrong, as seen in the code sample.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the value of 'result' after step 2?
A5
B3
Cundefined
D0
💡 Hint
Check the 'Store result' row in the execution_table where result is set to 5.
At which step does the assertion check happen?
AStep 1
BStep 3
CStep 2
DStep 4
💡 Hint
Look at the 'Assert result == 5' action in the execution_table.
If the add function returned 4 instead of 5, what would happen at step 3?
AResult changes to 5
BAssertion passes
CAssertion fails and test stops
DTest continues without error
💡 Hint
Refer to key_moments about assertion failure stopping the test.
Concept Snapshot
Kotlin test assertions check if a condition is true.
Use assert(condition) { "message" } inside test functions.
If condition is false, test fails with the message.
Assertions help verify code works as expected.
They stop the test immediately on failure.
Full Transcript
This visual trace shows how Kotlin test assertions work. First, a test function calls the function to test. The result is stored in a variable. Then an assertion checks if the result matches the expected value. If true, the test passes and continues. If false, the assertion throws an error and the test fails immediately. The message inside the assertion helps explain the failure. Variables like 'result' change as the test runs. Understanding these steps helps beginners see how tests verify code correctness.

Practice

(1/5)
1. Which Kotlin test assertion checks if two values are equal?
easy
A. assertEquals(expected, actual)
B. assertTrue(condition)
C. assertNull(value)
D. assertFails { block }

Solution

  1. Step 1: Understand assertion types

    assertEquals is used to check if two values are equal.
  2. Step 2: Match assertion to purpose

    assertTrue checks if a condition is true, assertNull checks for null, and assertFails checks for exceptions.
  3. Final Answer:

    assertEquals(expected, actual) -> Option A
  4. Quick Check:

    Equality check = assertEquals [OK]
Hint: Use assertEquals to compare expected and actual values [OK]
Common Mistakes:
  • Confusing assertTrue with assertEquals
  • Using assertNull for equality checks
  • Using assertFails to check values
2. Which of the following is the correct syntax to assert a condition is true in Kotlin tests?
easy
A. assertTrue { condition }
B. assertTrue condition
C. assertTrue(condition)
D. assertTrue: condition

Solution

  1. Step 1: Recall Kotlin assertion syntax

    assertTrue takes a Boolean condition as a parameter inside parentheses.
  2. Step 2: Identify correct syntax

    Only assertTrue(condition) is valid Kotlin syntax; others are incorrect.
  3. Final Answer:

    assertTrue(condition) -> Option C
  4. Quick Check:

    assertTrue uses parentheses for condition [OK]
Hint: Remember assertions use parentheses for arguments [OK]
Common Mistakes:
  • Using curly braces instead of parentheses
  • Omitting parentheses
  • Using colon instead of parentheses
3. What will be the result of this Kotlin test assertion?
val result = 5
assertEquals(5, result)
medium
A. Test passes without error
B. Test fails with AssertionError
C. Compilation error
D. Runtime exception other than AssertionError

Solution

  1. Step 1: Check values compared

    The expected value is 5 and actual value stored in result is also 5.
  2. Step 2: Understand assertEquals behavior

    Since both values are equal, assertEquals passes without throwing an error.
  3. Final Answer:

    Test passes without error -> Option A
  4. Quick Check:

    Equal values = test passes [OK]
Hint: Equal expected and actual means test passes [OK]
Common Mistakes:
  • Assuming assertEquals throws error on equal values
  • Confusing expected and actual order
  • Thinking assertEquals returns a value
4. Identify the error in this Kotlin test assertion code:
assertEquals(10, 5 + 3)
medium
A. Runtime exception due to invalid operation
B. No error, test passes
C. Syntax error due to missing parentheses
D. Test fails because expected and actual differ

Solution

  1. Step 1: Calculate actual value

    The expression 5 + 3 equals 8.
  2. Step 2: Compare expected and actual

    Expected is 10 but actual is 8, so assertEquals fails and throws AssertionError.
  3. Final Answer:

    Test fails because expected and actual differ -> Option D
  4. Quick Check:

    Different values = test fails [OK]
Hint: Check actual calculation matches expected value [OK]
Common Mistakes:
  • Assuming test passes despite value mismatch
  • Thinking syntax error occurs
  • Confusing runtime exceptions with assertion failures
5. You want to test that a function throws an exception when given invalid input. Which Kotlin assertion should you use?
hard
A. assertNull(function(invalidInput))
B. assertFails { function(invalidInput) }
C. assertEquals(exception, function(invalidInput))
D. assertTrue(function(invalidInput))

Solution

  1. Step 1: Understand exception testing

    To check if a function throws an exception, use assertFails with a lambda calling the function.
  2. Step 2: Evaluate other options

    assertEquals compares values, not exceptions; assertNull checks for null; assertTrue checks a Boolean condition.
  3. Final Answer:

    assertFails { function(invalidInput) } -> Option B
  4. Quick Check:

    Exception test = assertFails [OK]
Hint: Use assertFails with lambda to test exceptions [OK]
Common Mistakes:
  • Using assertEquals to check exceptions
  • Using assertNull expecting exception
  • Using assertTrue for exception testing
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