# jest ```js import { add, addString, toNumber, filterOrange } from "./index"; it('adds 1 + 2 to equal 3', () => { expect(add(1, 2)).toBe(3); }); it('adds undefined + 2 to equal NaN', () => { expect(add(undefined, 2)).toBe(NaN); }); describe("addString", () => { it("passed parameter param and param2 as string, it should be ab", () => { const param = "a"; const param2 = "b"; const result = addString(param, param2); expect(result).toBe("ab") }) it("passed parameter param and param2 as number, it should be -1", () => { const param = 1; const param2 = 1; const result = addString(param, param2); expect(result).toBe(-1) }) }) describe("toNumber", () => { it("passed parameter a and b as number, it should be -1", () => { const param = "-1"; const result = toNumber(param); expect(result).toBe(-1) }) it("passed parameter as string, it should be NaN", () => { const param = "aaa"; const result = toNumber(param); expect(result).toBe(NaN) }) it("passed parameter 10000desu as string, it should be 10000", () => { const param = "10000desu"; const result = toNumber(param); expect(result).toBe(10000) }) }) describe("filterOrange", () => { it("passed parameter array include orange, it should be ['orange']", () => { const fruits = ["orange", "apple", "peach"]; const result = filterOrange(fruits); expect(result).toStrictEqual(["orange"]) // toEqualでも可 }) it("passed parameter array include orange, it should be empty arry", () => { const fruits = ["pine", "apple", "peach"]; const result = filterOrange(fruits); expect(result).toStrictEqual([]) // toEqualでも可 }) }) ``` [toEqualとtoStrictEqualの違い](https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/prefer-strict-equal.md) - toEqualはオブジェクトのkeyまで見ない。同等なら通る > toStrictEqualは、2つのオブジェクトに同じデータが含まれていることだけでなく、それらが同じ構造を持っていることもチェックします。 オブジェクトが同じ値を持つだけでなく、同じキーを持つことを期待するのが一般的です。 より厳密な等式は、2つのオブジェクトが同一のキーを持たない場合をキャッチします。