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/

참고

http://frisbyjs.com/docs/api/

https://ian_lin.gitbooks.io/javascript-testing/content/chapter6.html

teamsmiley's profile image

teamsmiley

2016-08-23 00:00

Read more posts by this author