이상한 post man test code
real world의 테스트 코드는 오래되었다.
아래는 login테스트 코드이다.
var responseJSON = JSON.parse(responseBody);
tests['Response contains "user" property'] = responseJSON.hasOwnProperty('user');
var user = responseJSON.user || {};
tests['User has "email" property'] = user.hasOwnProperty('email');
tests['User has "username" property'] = user.hasOwnProperty('username');
tests['User has "bio" property'] = user.hasOwnProperty('bio');
tests['User has "image" property'] = user.hasOwnProperty('image');
tests['User has "token" property'] = user.hasOwnProperty('token');
이러한 방식의 코드는 deprecated 되었다. -> https://learning.postman.com/docs/writing-scripts/script-references/test-examples/#previous-style-of-writing-postman-tests-deprecated
해결.
jest같은 방식을 사용하길 권장하고 있다.
내 에플리케이션에선 로그인 결과로 사용자 정보를 반환하지 않으니 token만 검사했다.
pm.test('has "token" property', () => {
const responseJSON = pm.response.json()
pm.expect(responseJSON).to.have.property('token')
})
RealWorld서 제공한 인증 헤더의 포맷은 아래와 같다.
Authorization: Token <token>
사실 인증 헤더의 문법은 아래와 같다.
https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/Authorization
Authorization: <type> <credentials>
그리고 스펙문서에서 "Token"인증 타입은 볼 수 없다.
https://www.iana.org/assignments/http-authschemes/http-authschemes.xhtml
해결.
JWT를 사용하니 Bearer 타입으로 바꾸는 편이 좋겠다.
'프로그래밍 > 끄적끄적' 카테고리의 다른 글
파이썬에서 함수와 클래스의 사용에 대한 생각 (1) | 2023.10.16 |
---|---|
다 쓴 객체 참조를 해제하자! (0) | 2022.10.24 |