로그인 테스트
...
it('Salt 암호가 포함된 비밀번호가 있습니다.', async () => {
const user = await service.signup('asdf@asdf.com', 'asdf')
expect(user.password).not.toEqual('asdf');
const [salt, hash] = user.password.split('.');
expect(salt).toBeDefined()
expect(hash).toBeDefined()
})
...모의 구현
describe('AuthService', () => {
let service : AuthService;
let fakeUsersService : Partial<UsersService>
// 테스트 블록에서 사용할 수 있도록 변수에 service를 미리 할당한다.
beforeEach(async () => {
// Fake 서비스 생성
fakeUsersService = {
find : () => Promise.resolve([]),
create: (email : string, password : string) => Promise.resolve({id : 1, email, password} as User)
}
...
it('회원가입시 이메일 오류가 발생한다.', async (done) => {
fakeUsersService.find = () => Promise.resolve([
{
id : 1,
email : 'a',
password : '1'
} as User
])
// 블록에서만 find가 동작할 수 있도록, 할당한다.
try {
await service.signup('asdf@asdf.com', 'asdf')
} catch (err) {
done()
}
})모의구현 변경
로그인 테스트
간단한 방법
더 좋은 방법
지능적인 모의 구현
Last updated