β testμ μν
μ½λλ ν¨μκ° μ λλ‘ μ€νλλμ§ κ²μ¬νκ³ κ°μ΄ μΌμΉνλμ§ κ²μ¬νλ€.
test ν¨μμ 첫 λ²μ§Έ μΈμλ‘λ ν μ€νΈμ λν μ€λͺ μ μ κ³ , λ λ²μ§Έ μΈμμΈ ν¨μμλ ν μ€νΈ λ΄μ©μ μ λλ€.
except ν¨μμ μΈμλ‘ μ€μ μ½λλ₯Ό, to Equal ν¨μμ μΈμλ‘ μμλλ κ²°κ³Όκ°μ λ£λλ€.
expectμ λ£μ κ°κ³Ό toEqualμ λ£μ κ°μ΄ μΌμΉνλ©΄ ν μ€νΈλ₯Ό ν΅κ³Όνλ€.
// routes/middlewares.test.js
{
test('1+1μ 2μ
λλ€.', () => {
expect(1 + 1).toEqual(2);
});
μμ λ¨μμ ν¨μλ λͺ¨λμ΄ μλλ λλ‘ μ νν μλνλμ§ ν μ€νΈνλ κ².
λ¨μ ν μ€νΈλΌκ³ λ λΆλ₯΄λ©°, λμ€μ ν¨μλ₯Ό μμ νλ©΄ κΈ°μ‘΄μ μμ±ν΄λ ν μ€νΈλ μ€ν¨νκ² λλ―λ‘ ν¨μκ° μμ λμμ λ μ΄λ€ λΆλΆμ΄ κ³ μ₯λλμ§ ν μ€νΈλ₯Ό ν΅ν΄ μ μ μλ€.
ν μ€νΈ μ½λλ κΈ°μ‘΄ μ½λκ° λ³κ²½λ κ²μ λ§μΆ° μμ ν΄μ£Όμ΄μΌ νλ€.
ν μ€νΈλ₯Ό κ·Έλ£Ήνν΄μ€λ€.
κ°μ§ κ°μ²΄, κ°μ§ ν¨μλ₯Ό λ£λ νμ.
ν¨μλ₯Ό λͺ¨νΉν λλ jest.fn λ©μλλ₯Ό μ¬μ©νλ©°, ν¨μμ λ°νκ°μ μ§μ νκ³ μΆλ€λ©΄ jest.fn(() => λ°νκ°)μ μ¬μ©νλ€.
μ 체 μ½λ μ€μμ ν μ€νΈλκ³ μλ μ½λμ λΉμ¨κ³Ό ν μ€νΈλκ³ μμ§ μμ μ½λμ μμΉλ₯Ό μλ €μ£Όλ jestμ κΈ°λ₯
μ΄λ€ λΆλΆμ΄ ν μ€νΈλκ³ μ΄λ€ λΆλΆμ΄ ν μ€νΈλμ§ μλμ§ μμμΌ λμ€μ ν΄λΉ λΆλΆμ ν μ€νΈ μ½λλ₯Ό μμ±ν μ μλ€.
컀λ²λ¦¬μ§ κΈ°λ₯ μ¬μ©μ μν΄ package.jsonμ jest μ€μ μ μ λ ₯νλ€.
jest λͺ λ Ήμ΄ λ€μ coverage μ΅μ μ λΆμ΄λ©΄ jestκ° ν μ€νΈ 컀λ²λ¦¬μ§λ₯Ό λΆμνλ€.
{
"scripts": {
"start": "nodemon app",
"test": "jest",
"coverage": "jest --coverage"
}
$ npm run coverage λ₯Ό μννλ©΄ ν μ€νΈ κ²°κ³Όμ νκ° μΆλ ₯λλ€.
νΌμΌν°μ§κ° λμμλ‘ λ§μ μ½λκ° ν μ€νΈλ κ²μ΄λ€.
ν μ€νΈ 컀λ²λ¦¬μ§κ° 100%λΌ νλλΌλ μ€μ λ‘ λͺ¨λ μ½λλ₯Ό ν μ€νΈν κ²μ μλ μ μλ€.
νλμ λΌμ°ν°μλ μ¬λ¬ κ°μ λ―Έλ€μ¨μ΄κ° λΆμ΄ μκ³ , λ€μν λΌμ΄λΈλ¬λ¦¬κ° μ¬μ©λλ€.
μ΄λ° κ²λ€μ΄ λͺ¨λ μ κΈ°μ μΌλ‘ μ μλνλμ§ ν μ€νΈνλ κ²μ΄ ν΅ν© ν μ€νΈμ΄λ€.
β ν μ€νΈμ© λ°μ΄ν°λ² μ΄μ€
ν΅ν© ν μ€νΈμμλ λ°μ΄ν°λ² μ΄μ€ μ½λλ₯Ό λͺ¨νΉνμ§ μμΌλ―λ‘ λ°μ΄ν°λ² μ΄μ€μ μ€μ λ‘ ν μ€νΈμ© λ°μ΄ν°κ° μ μ₯λλ€.
μ€μ μλΉμ€ μ€μΈ λ°μ΄ν°λ² μ΄μ€μ ν μ€νΈμ© λ°μ΄ν°κ° λ€μ΄κ°λ©΄ μ λλ―λ‘, ν μ€νΈμ© λ°μ΄ν°λ² μ΄μ€λ₯Ό λ°λ‘ λ§λλ κ²μ΄ μ’λ€.
ν μ€νΈ νμ λ°μ΄ν°λ² μ΄μ€μ λ°μ΄ν°κ° λ¨μ μμΌλ©΄ λ€μ ν μ€νΈμ μν₯μ λ―ΈμΉ μ μλ€.
ν μ€νΈ μ’ λ£ μ λ°μ΄ν°λ₯Ό μ 리νλ μ½λλ₯Ό μΆκ°ν΄μΌ νλλ° λ³΄ν΅ afterAllμ μ 리νλ μ½λλ₯Ό μΆκ°νλ€.
// sync λ©μλμ force: trueλ₯Ό λ£μ΄ ν
μ΄λΈμ λ€μ λ§λ€κ² νλ€.
afterAll(async () => {
await sequelize.sync({ force: true });
});
μλ²κ° μΌλ§λ§νΌμ μμ²μ 견λ μ μλμ§ (λλ μμ©ν μ μλμ§) ν μ€νΈνλ λ°©λ².
μ½λμ λ¬Έλ²μ , λ Όλ¦¬μ λ¬Έμ κ° μλλΌλ μλ²μ νλμ¨μ΄ μ μ½ λλ¬Έμ μλΉμ€κ° μ€λ¨λ μ μλ€.
μλ²λ μ μμλ€μ μ 보λ₯Ό μ μ₯νκΈ° μν΄ κ°κ°μ μ μμλ§λ€ μΌμ ν λ©λͺ¨λ¦¬λ₯Ό ν λΉνλ€.
μ¬μ©νλ λ©λͺ¨λ¦¬ μμ΄ μ¦κ°νλ€κ° μλ²μ λ©λͺ¨λ¦¬ μ©λμ λμ΄μκ² λλ©΄ λ¬Έμ κ° λ°μνλ€.
μ΄λ λΆν ν μ€νΈλ₯Ό ν΅ν΄ μ΄λ μ λ μμΈ‘ κ°λ₯νλ€.
[Node.js] 14μ₯ CLI νλ‘κ·Έλ¨ λ§λ€κΈ° (0) | 2023.01.05 |
---|---|
[Node.js] 12μ₯ μΉ μμΌμΌλ‘ μ€μκ° λ°μ΄ν° μ μ‘νκΈ° (0) | 2022.12.22 |
[Node.js] 10μ₯ μΉ API μλ² λ§λ€κΈ° (0) | 2022.11.24 |
[Node.js] 9μ₯ μ΅μ€νλ μ€λ‘ SNS μλΉμ€ λ§λ€κΈ° (0) | 2022.11.17 |
[Node.js] 8μ₯ λͺ½κ³ λλΉ (0) | 2022.11.17 |