Frisbyjs (Automate Rest Api Testing) - 4
실제 예제 2
api를 호출후 status 는 200이나 json결과가 리스트로 와야하는데 0개가 오면 에러 이런 걸 테스트해보려고 한다.
기존 코드
frisby.create('getjoblist')
.get('http://yourapi.com/lists')
.expectStatus(200) //http status를 200으로 기대함.
.toss()
이코드는 상태값은 체크를 하나 리스트 갯수가 0개인것을 찾아내지 못한다. 아래처럼 변경해보자.
변경된 코드
frisby.create('getjoblist')
.get('http://yourapi.com/lists')
.expectStatus(200) //http status를 200으로 기대함.
.afterJSON(function (json){
//console.log(json.length);
expect(json.length > 0 ).toBe(true);
})
.toss()
frisby는 node.js와 jasmine.js를 이용하여 만들어 져있기 때문에 jasmine을 모두 사용할수 있다.
Frisby is a REST API testing framework built on node.js and Jasmine
실제 예제 3
새로운 요구사항이 나왔다. 기존 api는 /lists/search?visible=false’ 이런 스타일로 false만 받게 되있는데 false 대신 0을 써도 되게 해주라는것이였다.
false : 0 하고 같은걸로 해야한다. 여기서는 테스트만 구현한다.
frisby.create('VisibleOnly')
.get(domain + '/lists/search?visible=false')
.expectStatus(200)
.afterJSON(function (json){
var count = json.length;
expect(count > 0 ).toBe(true);
frisby.create('VisibleNumber')
.addHeader('Authorization' , 'Bearer ' + token)
.get(domain + '/lists/search?visible=0')
.expectStatus(200)
.afterJSON(function (json){
expect(count == json.length ).toBe(true);
})
.toss();
})
.toss();
false를 사용해서 리스트를 가져온다음 다시 0으로 해서 가져와서 두개의 갯수가 같은지 확인한다..
(실제로 json이 똑같이 같은지 체크해도 된다..난 귀찮아서 패스 )
실제 예제 4
쿼리 스트링에 이상한 값이 들어오면 400을 보내줘야한다.
frisby.create('NoQueryString')
.addHeader('Authorization' , 'Bearer ' + token)
.get(domain + '/lists/search')
.expectStatus(200)
.toss();
frisby.create('WrongQueryString')
.addHeader('Authorization' , 'Bearer ' + token)
.get(domain + '/lists/search?aaaaa')
.expectStatus(400)
.toss();
400을 기대하고 있다.
관련 글
https://teamsmiley.github.io/2016/08/22/frisby-1/
https://teamsmiley.github.io/2016/08/22/frisby-2/
https://teamsmiley.github.io/2016/08/22/frisby-3/
https://teamsmiley.github.io/2016/08/22/frisby-4/
https://teamsmiley.github.io/2016/08/22/frisby-5/
https://teamsmiley.github.io/2016/08/22/frisby-6/
https://teamsmiley.github.io/2016/08/22/frisby-7/
참고
https://ian_lin.gitbooks.io/javascript-testing/content/chapter6.html