Frisby is a REST API testing framework built on node.js and Jasmine.
Install Frsiby.js
Install Frisby.js with NPM locally. Execute the following command in your project folder.
sudo npm install frisby
Write Tests
Frisby tests start with frisby.create(‘Test Title’), where Test Title is a description for this test.
The tests are then followed by one of the HTTP methods (get, post, …, etc). For example, .get(url) make a GET request to url.
The tests can be chained with expects after the HTTP methods. For example, .expectStatus(200) tests if the response status is 200.
The tests end with .toss() to generate the resulting Jasmine tests.
Run Tests
Frisby.js uses the Jasmine-node test runner.
Write the tests in *.js files and put them in the /spec folder.
Note: The test files must be named as *spec.js in order for jasmine-node to find them
Run the tests with the command jasmine-node spec/ and the result of the test should show.
Generate Test Reports
To generate test reports in JUnit format, use –junitreport argument with jasmine-node command.
A Simple Example:
This simple example includes a HTTP server for GET, PUT, POST, DELETE requests. The server will return a json object with method field being the request type.
For example, the server will respond to a GET request with {“method”:”GET”}.
Each test case includes sending a request and check the HTTP status code, response header, and response JSON body.
For example,
frisby.create(‘GET Method’)
.get(‘http://localhost:4000’)
.expectStatus(200)
.expectHeaderContains(‘content-type’, ‘application/json’)
.expectJSON({
method : ‘GET’
})
.expectJSONTypes({
method : String
}).toss();