A small assertion helper can compare actual and expected values during a test.

assertion An assertion turns a condition into a pass or fail result that can be counted and reported.

Simple Assertions

rate
assertions.ts
Replay: real traced execution (multi-file project)
function addTax(cents: number, rate: number): number {
    return Math.round(cents * (1 + rate));
}

function assertEqual(actual: number, expected: number): boolean {
    return actual === expected;
}

const rate: number = 0.10;
const actual: number = addTax(1000, rate);
const expected: number = rate === 0.10 ? 1100 : 1200;
const passed: boolean = assertEqual(actual, expected);

console.log(passed ? `pass:${actual}` : `fail:${actual}`);
function addTax(cents: number, rate: number): number {
    return Math.round(cents * (1 + rate));
}

function assertEqual(actual: number, expected: number): boolean {
    return actual === expected;
}

const rate: number = 0.20;
const actual: number = addTax(1000, rate);
const expected: number = rate === 0.10 ? 1100 : 1200;
const passed: boolean = assertEqual(actual, expected);

console.log(passed ? `pass:${actual}` : `fail:${actual}`);
  1. rate ← 0.1

    6    return actual === expected;7}89const rate→ 0.1: number = 0.10;  //@rate=0.2010const actual: number = addTax(1000, rate0.1);11const expected: number = rate === 0.10 ? 1100 : 1200;
  2. function addTax(cents: number, rate: number): number

    1function addTax(cents1000: number, rate0.1: number): number {2    return Math.round(cents * (1 + rate0.1));3}
  3. actual ← 1100, expected ← 1100, rate ← 0.1

    9const rate: number = 0.10;  //@rate=0.2010const actual→ 1100: number = addTax(1000, rate0.1);11const expected→ 1100: number = rate→ 0.1 === 0.10 ? 1100 : 1200;12const passed: boolean = assertEqual(actual1100, expected1100);
  4. function assertEqual(actual: number, expected: number): boolean

    2    return Math.round(cents * (1 + rate));3}45function assertEqual(actual1100: number, expected1100: number): boolean {6    return actual === expected1100;7}
  5. passed ← true

    10const actual: number = addTax(1000, rate);11const expected: number = rate === 0.10 ? 1100 : 1200;12const passed→ true: boolean = assertEqual(actual1100, expected1100);1314console.log(passedtrue ? `pass:${actual1100}` : `fail:${actual}`);
    outputpass:1100
  1. rate ← 0.2

    6    return actual === expected;7}89const rate→ 0.2: number = 0.20;10const actual: number = addTax(1000, rate0.2);11const expected: number = rate === 0.10 ? 1100 : 1200;
  2. function addTax(cents: number, rate: number): number

    1function addTax(cents1000: number, rate0.2: number): number {2    return Math.round(cents * (1 + rate0.2));3}
  3. actual ← 1200, expected ← 1200, rate ← 0.2

    9const rate: number = 0.20;10const actual→ 1200: number = addTax(1000, rate0.2);11const expected→ 1200: number = rate→ 0.2 === 0.10 ? 1100 : 1200;12const passed: boolean = assertEqual(actual1200, expected1200);
  4. function assertEqual(actual: number, expected: number): boolean

    2    return Math.round(cents * (1 + rate));3}45function assertEqual(actual1200: number, expected1200: number): boolean {6    return actual === expected1200;7}
  5. passed ← true

    10const actual: number = addTax(1000, rate);11const expected: number = rate === 0.10 ? 1100 : 1200;12const passed→ true: boolean = assertEqual(actual1200, expected1200);1314console.log(passedtrue ? `pass:${actual1200}` : `fail:${actual}`);
    outputpass:1200