728x90
toBeCalledWith : jest.fn()과 같은 Mocking Function에서 사용된다.
해당 함수가 몇번 호출되었는지 검사하거나 호출된 인수를 검사하는데 사용되고 주로 함수가 어떤 인수로 호출되었는지에 관심이 있을 때 사용한다.
toEqual: jest에서 객체나 값의 동등성을 검사할 때 사용되고, 주어진 두 값이 완전히 동일한지 확인할 때 사용한다.
예를들어 ,
exports.isLoggedIn = (req, res, next) => {
if (req.isAuthenticated()) {
next();
} else {
**res.status(403).send('로그인 필요');**
}
};
위와같은 함수가 있을때 jest를 사용해서 테스트 할 경우 아래와 같이 작성할 수 있다.
test("로그인 되어 있지 않으면 isLoggedIn이 에러를 응답해야함", () => {
const req = {
isAuthenticated: jest.fn(() => false),
};
isLoggedIn(req, res, next);
**expect(res.status).toBeCalledWith(403);**
**expect(res.send).toBeCalledWith("로그인 필요");**
});
res.status와 res.send에 toBeCalleWith을 사용하는 이유는 toBeCalleWith자체가 mocking된 가짜함수에 사용되는 함수이기 때문에 동등한지(toEqual) 따질 이유가 없는것이다.
toEqual은 아래와 같이 사용될 수 있다. (obj1과 obj2는 동등하기 때문에 테스트 시 통과된다.)
const obj1 = { key: 'hi' };
const obj2 = { key:'hi' };
expect(obj1).toEuqal(obj2);
728x90
'FE' 카테고리의 다른 글
프론트에서 Transaction을 ? (0) | 2024.05.23 |
---|---|
[Error : Warning: Each child in a list should have a unique "key" prop ] (0) | 2023.09.21 |