Unit Testing/Jest/Test Exceptions

Create a JavaScript Program edit

Create the following JavaScript program. Save it as multiply.js

function multiply(x, y) {
    if (isNaN(x)) {
        throw new Error("x must be a number");
    }

    if (isNaN(y)) {
        throw new Error("y must be a number");
    }

    let result = x * y;
    return result;
}

module.exports = multiply;

Create a Test Program edit

Create the following Jest test program. Save it as multiply.test.js

const multiply = require("./multiply");

test("Multiply 2 * 2", () => {
    expect(multiply(2, 2)).toBe(4);
});

test("Multiply 2 * x", () => {
    expect(() => {
        multiply(2, "x");
    }).toThrow("y must be a number");    
});

Test Success edit

Test the program by running Jest in a terminal or command prompt in the same folder as the two programs above and observe the results.

npm test

Test Failure edit

Change the multiply source code somehow, such as removing the number validation. Test the program by running Jest again and observe the results.