Bird
Raised Fist0
Denoframework~20 mins

Assertions and matchers in Deno - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Deno Assertions Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
📝 Syntax
intermediate
2:00remaining
Identify the output of this Deno test assertion
What will be the result when running this Deno test code snippet?
Deno
import { assertEquals } from "https://deno.land/std@0.203.0/testing/asserts.ts";

Deno.test("Check sum", () => {
  const result = 2 + 2;
  assertEquals(result, 4);
});
ATest passes without errors
BTest fails with an AssertionError
CSyntaxError due to missing import
DRuntime error: result is undefined
Attempts:
2 left
💡 Hint
Check what assertEquals compares and the values used.
❓ component_behavior
intermediate
2:00remaining
What happens if assertThrows is used incorrectly?
Consider this Deno test code. What is the outcome when running it?
Deno
import { assertThrows } from "https://deno.land/std@0.203.0/testing/asserts.ts";

Deno.test("Throw test", () => {
  assertThrows(() => {
    const x = 5 + 5;
  });
});
ATest fails with AssertionError because no error was thrown
BTest passes because the function runs without error
CSyntaxError due to missing error type in assertThrows
DRuntime error: x is not defined
Attempts:
2 left
💡 Hint
assertThrows expects the function to throw an error.
❓ state_output
advanced
2:00remaining
What is the output of this test using assertMatch?
Given this test code, what will be the test result?
Deno
import { assertMatch } from "https://deno.land/std@0.203.0/testing/asserts.ts";

Deno.test("Regex match test", () => {
  const message = "Hello Deno!";
  assertMatch(message, /^Hello/);
});
ATest fails because message does not match regex
BTest fails because regex is invalid
CTest passes because message starts with 'Hello'
DRuntime error: assertMatch is not a function
Attempts:
2 left
💡 Hint
Check if the string matches the regular expression pattern.
🔧 Debug
advanced
2:00remaining
Why does this test fail with TypeError?
Analyze this test code and identify why it fails with a TypeError.
Deno
import { assertEquals } from "https://deno.land/std@0.203.0/testing/asserts.ts";

Deno.test("Type error test", () => {
  const data = null;
  assertEquals(data.length, 0);
});
ASyntaxError due to missing semicolon
BAssertionError because data.length is not 0
CTest passes because null is treated as empty
DTypeError because null has no property 'length'
Attempts:
2 left
💡 Hint
Check the type of data and what properties it has.
🧠 Conceptual
expert
3:00remaining
Which assertion correctly tests that a function throws a specific error message?
You want to test that calling failFunc() throws an error with message "Invalid input". Which assertion code is correct?
Deno
function failFunc() {
  throw new Error("Invalid input");
}
AassertThrows(() => failFunc(), Error, "Invalid input");
BassertThrows(() => failFunc(), Error, /Invalid input/);
CassertThrows(() => failFunc(), /Invalid input/);
DassertThrows(() => failFunc(), "Invalid input");
Attempts:
2 left
💡 Hint
Check the signature of assertThrows for matching error messages.

Practice

(1/5)
1. What is the main purpose of assertions in Deno testing?
easy
A. To create new variables automatically
B. To check if the code behaves as expected
C. To speed up the execution of code
D. To format the output of the program

Solution

  1. Step 1: Understand what assertions do

    Assertions are used to verify that the code produces the expected results during tests.
  2. Step 2: Identify the purpose in testing

    They help catch errors by comparing actual output with expected output.
  3. Final Answer:

    To check if the code behaves as expected -> Option B
  4. Quick Check:

    Assertions verify behavior = D [OK]
Hint: Assertions verify expected behavior in tests [OK]
Common Mistakes:
  • Thinking assertions format output
  • Believing assertions speed up code
  • Confusing assertions with variable creation
2. Which of the following is the correct syntax to assert equality in Deno tests?
easy
A. assertEquals(actual, expected);
B. assertEqual(actual, expected);
C. assert.equal(actual, expected);
D. assertEquals(expected, actual);

Solution

  1. Step 1: Recall Deno's assertion function names

    Deno provides an assertion function called assertEquals to check equality.
  2. Step 2: Check parameter order and spelling

    The correct order is assertEquals(actual, expected), matching assertEquals(actual, expected); exactly.
  3. Final Answer:

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

    Correct function and order = A [OK]
Hint: Use assertEquals(actual, expected) exactly [OK]
Common Mistakes:
  • Swapping actual and expected parameters
  • Using assertEqual instead of assertEquals
  • Using dot notation incorrectly
3. What will be the result of this Deno test code?
import { assertEquals } from "https://deno.land/std/testing/asserts.ts";

const result = 5 + 3;
assertEquals(result, 8);
medium
A. Runtime error because result is undefined
B. Test fails with an assertion error
C. Syntax error due to import statement
D. Test passes without errors

Solution

  1. Step 1: Evaluate the calculation

    The variable result is assigned 5 + 3, which equals 8.
  2. Step 2: Check the assertion

    The assertion compares result (8) with expected value 8, so it matches and passes.
  3. Final Answer:

    Test passes without errors -> Option D
  4. Quick Check:

    5 + 3 = 8 matches expected = A [OK]
Hint: Check calculation matches expected value exactly [OK]
Common Mistakes:
  • Assuming import causes syntax error
  • Thinking assertion fails when values match
  • Confusing runtime error with assertion failure
4. Identify the error in this Deno test code:
import { assertEquals } from "https://deno.land/std/testing/asserts.ts";

const value = "hello";
assertEquals(value, Hello);
medium
A. Missing quotes around Hello causing a ReferenceError
B. Incorrect import URL for assertEquals
C. assertEquals requires three arguments
D. Variable value is not defined

Solution

  1. Step 1: Check the assertion parameters

    The second parameter is Hello without quotes, so JavaScript treats it as a variable.
  2. Step 2: Identify the error caused

    Since Hello is not defined, this causes a ReferenceError at runtime.
  3. Final Answer:

    Missing quotes around Hello causing a ReferenceError -> Option A
  4. Quick Check:

    String literals need quotes = C [OK]
Hint: Always quote string literals in assertions [OK]
Common Mistakes:
  • Forgetting quotes around strings
  • Assuming import URL is wrong
  • Thinking assertEquals needs more arguments
5. You want to test if a function returns an array containing the number 10. Which assertion is best to use in Deno?
hard
A. assert(result == [10]);
B. assertEquals(result, 10);
C. assertEquals(result.includes(10), true);
D. assert(result.contains(10));

Solution

  1. Step 1: Understand the goal

    You want to check if the array contains the number 10, not if it equals 10 or a single-element array.
  2. Step 2: Evaluate each option

    assertEquals(result.includes(10), true); uses result.includes(10) which returns true if 10 is in the array, then asserts it equals true. This is correct.
    assert(result == [10]); compares array to [10] with == which fails because arrays are reference types.
    assertEquals(result, 10); compares array to number 10, which is incorrect.
    assert(result.contains(10)); uses contains which is not a valid JavaScript method.
  3. Final Answer:

    assertEquals(result.includes(10), true); -> Option C
  4. Quick Check:

    Use includes() to check array contents = B [OK]
Hint: Use includes() method inside assertEquals for array checks [OK]
Common Mistakes:
  • Using == to compare arrays
  • Using non-existent contains() method
  • Comparing array directly to a number
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