-
TIL 195일 - sinon.js, chai, mocah공부/JavaScript 2022. 7. 12. 21:44
sinon.js란?
js를 위한 스텁, 목, 스파이 기능을 제공하는 테스트 툴이다.
stub
요렇게 사용할 수 있다. (당연히 실패함)
import { assert } from "chai"; import { stub } from "sinon"; describe("tes1t", () => { it("test11", async () => { const stubAnyFunction = stub(); stubAnyFunction.returns(false); assert.equal(true, stubAnyFunction()); }); });
Mock
mock을 쓰면 아래처럼도 쓸 수 있다.
근데 이상한게 UserModel을 다른 파일에 두면 에러가 발생한다.
음... 뭔가 export랑 관련된 이슈가 있는 거 같음
import { assert } from "chai"; import { mock, stub } from "sinon"; import { User } from "../index"; export const UserModel = { findOne: async () => { return await User.findOne(); }, }; describe("tes1t", () => { it("test11", async () => { const stubAnyFunction = stub(); stubAnyFunction.returns(false); assert.equal(true, stubAnyFunction()); }); it("test22", async () => { mock(UserModel) .expects("findOne") .callsFake(() => { return { id: 1, firstName: "asd", lastName: "qwe" }; }); const result = await UserModel.findOne(); console.log(result); }); });
'공부 > JavaScript' 카테고리의 다른 글
TI 197일 - node에서 service layer unit test (0) 2022.07.14 TIL 196일 - node에서 presentation 레이어 유닛 테스트 구현해보기 (0) 2022.07.13 TIL 194일 - sequelize mock (0) 2022.07.11 TIL 190일 - node.js 테스트 코드... (0) 2022.07.07 TIL 189일 - node.js unit test 툴 (0) 2022.07.07