Bird
Raised Fist0
Denoframework~10 mins

Why Deno's built-in testing simplifies development - Test Your Understanding

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to import Deno's testing module.

Deno
import { [1] } from "https://deno.land/std/testing/asserts.ts";
Drag options to blanks, or click blank then click option'
AassertEquals
BassertTrue
CassertThrows
DassertNotEquals
Attempts:
3 left
💡 Hint
Common Mistakes
Choosing an assertion function that does not check equality.
Forgetting to import from the correct URL.
2fill in blank
medium

Complete the code to define a test case using Deno's built-in test function.

Deno
Deno.[1]("simple addition test", () => {
  const result = 2 + 3;
  assertEquals(result, 5);
});
Drag options to blanks, or click blank then click option'
Acheck
Btest
CrunTest
Dassert
Attempts:
3 left
💡 Hint
Common Mistakes
Using a non-existent function like runTest.
Confusing assertion functions with test definition functions.
3fill in blank
hard

Fix the error in the test function to properly handle async code.

Deno
Deno.test("async test", async () => {
  const data = await fetch("https://example.com");
  const text = await data.text();
  [1](text.length > 0);
});
Drag options to blanks, or click blank then click option'
AassertTrue
BassertEquals
Cassert
DassertThrows
Attempts:
3 left
💡 Hint
Common Mistakes
Using assertEquals when comparing to a boolean.
Using assertThrows which is for error checking.
4fill in blank
hard

Fill both blanks to create a test that expects an error to be thrown.

Deno
Deno.test("error test", () => {
  [1](() => {
    throw new Error("fail");
  }, [2]);
});
Drag options to blanks, or click blank then click option'
AassertThrows
BassertEquals
CError
DassertTrue
Attempts:
3 left
💡 Hint
Common Mistakes
Using assertEquals instead of assertThrows.
Not specifying the error type correctly.
5fill in blank
hard

Fill all three blanks to create a test that checks if a string includes a substring.

Deno
Deno.test("substring test", () => {
  const message = "Hello Deno!";
  [1](message.[2]("Deno"), [3]);
});
Drag options to blanks, or click blank then click option'
AassertTrue
Bincludes
Ctrue
DassertEquals
Attempts:
3 left
💡 Hint
Common Mistakes
Using assertTrue instead of assertEquals.
Using wrong string methods like indexOf without comparison.

Practice

(1/5)
1. What is one main advantage of Deno's built-in testing feature?
easy
A. You don't need to install extra testing libraries.
B. It requires complex setup before running tests.
C. Tests must be written in a separate language.
D. It only works with web browsers.

Solution

  1. Step 1: Understand Deno's testing setup

    Deno includes testing tools by default, so no extra installs are needed.
  2. Step 2: Compare options

    The options describing separate languages, complex setup, or browser-only use are incorrect for Deno's built-in testing.
  3. Final Answer:

    You don't need to install extra testing libraries. -> Option A
  4. Quick Check:

    Built-in testing = No extra installs [OK]
Hint: Remember: Deno has testing tools ready out-of-the-box [OK]
Common Mistakes:
  • Thinking you must install Jest or Mocha separately
  • Assuming tests run only in browsers
  • Believing tests require a different language
2. Which of the following is the correct way to define a test in Deno?
easy
A. Deno.test('example', () => { /* code */ })
B. deno.test('example', () => { /* code */ })
C. test('example', () => { /* code */ })
D. Test('example', () => { /* code */ })

Solution

  1. Step 1: Recall Deno's test syntax

    Deno's built-in testing uses the global object Deno with the method test.
  2. Step 2: Check options

    Only Deno.test('example', () => { /* code */ }) uses the correct case and syntax. deno.test('example', () => { /* code */ }) uses lowercase 'deno', which is invalid. test('example', () => { /* code */ }) omits the Deno prefix. Test('example', () => { /* code */ }) uses wrong casing.
  3. Final Answer:

    Deno.test('example', () => { /* code */ }) -> Option A
  4. Quick Check:

    Correct syntax = Deno.test [OK]
Hint: Use capital D in Deno.test for correct syntax [OK]
Common Mistakes:
  • Using lowercase 'deno' instead of 'Deno'
  • Omitting the 'Deno.' prefix
  • Using 'Test' with uppercase T
3. What will be the output when running this Deno test code?
import { assertEquals } from "https://deno.land/std@0.203.0/testing/asserts.ts";

Deno.test("sum test", () => {
  const result = 2 + 3;
  assertEquals(result, 5);
});
medium
A. Test fails with an assertion error.
B. Test passes with no errors.
C. Syntax error due to import statement.
D. Runtime error: assertEquals not defined.

Solution

  1. Step 1: Analyze the test code

    The test imports assertEquals correctly and checks if 2 + 3 equals 5.
  2. Step 2: Evaluate the assertion

    Since 2 + 3 is 5, assertEquals(result, 5) passes without error.
  3. Final Answer:

    Test passes with no errors. -> Option B
  4. Quick Check:

    Correct assertion = Test passes [OK]
Hint: Check if assertion matches expected value exactly [OK]
Common Mistakes:
  • Assuming import causes error without checking URL
  • Thinking 2 + 3 is not equal to 5
  • Confusing assertEquals with other assertion functions
4. Identify the error in this Deno test code:
Deno.test("fail test", () => {
  const value = 10;
  assertEquals(value, 5);
});
medium
A. No error; test will pass.
B. Incorrect test name syntax.
C. Using arrow function instead of regular function.
D. Missing import of assertEquals function.

Solution

  1. Step 1: Check for imports

    The code uses assertEquals but does not import it from Deno's standard library.
  2. Step 2: Understand impact

    Without importing, assertEquals is undefined, causing a runtime error.
  3. Final Answer:

    Missing import of assertEquals function. -> Option D
  4. Quick Check:

    assertEquals must be imported [OK]
Hint: Always import assertion functions before use [OK]
Common Mistakes:
  • Assuming assertEquals is globally available
  • Thinking arrow functions cause errors here
  • Ignoring missing import errors
5. You want to write multiple tests in Deno that share setup code. Which approach best uses Deno's built-in testing to simplify this?
hard
A. Repeat the setup code inside every Deno.test block manually.
B. Use a third-party testing library to manage setup and teardown.
C. Write a helper function for setup and call it inside each Deno.test block.
D. Put all tests inside one big Deno.test block without separation.

Solution

  1. Step 1: Understand Deno's testing features

    Deno.test allows multiple test blocks but does not have built-in setup/teardown hooks like some libraries.
  2. Step 2: Choose best practice for shared setup

    Writing a helper function for setup and calling it inside each test keeps code clean and avoids repetition.
  3. Step 3: Evaluate other options

    Repeat the setup code inside every Deno.test block manually. repeats code, which is inefficient. Use a third-party testing library to manage setup and teardown. adds complexity by using external libraries. Put all tests inside one big Deno.test block without separation. mixes tests, reducing clarity.
  4. Final Answer:

    Write a helper function for setup and call it inside each Deno.test block. -> Option C
  5. Quick Check:

    Helper function for setup = clean, reusable tests [OK]
Hint: Use helper functions to share setup code in tests [OK]
Common Mistakes:
  • Copy-pasting setup code in every test
  • Relying on external libraries unnecessarily
  • Combining all tests in one block
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