0.1.2 • Published 9 years ago

scenario-test v0.1.2

Weekly downloads
6
License
MIT
Repository
github
Last release
9 years ago

scenario-test

A simple javascript test tool for testing node.js HTTP servers.

Just write the YAML files!

Install

$ npm install -g scenario-test

Example

First, create a config file,

config.yaml

server: http://localhost:3000
mongodb: mongodb://localhost/test
user: ./user/user.yaml
api:
  - class: user
    path: ./api/user.yaml

scenario: 
  - ./scenario/user.yaml 

then, create your users

./user/user.yaml

- user_id: user1
  with:
    username: user1
    email: user1@mail.com
    password: user1234

and just describe your APIs,

./api/user.yaml

- API: create
  method: POST
  path: /users
  parameters: 
    username: self.username
    email: self.email
    password: self.password
  response:
    when user sign up ok:
      expect status: 200

- API: login
  method: POST
  path: /login
  parameters:
    username: self.username
    password: self.password
  response:
    when user login ok:
      expect status: 200
      expect header:
        # header to test
      expect body:
        # res.body to test

then, give some scenarios ./scenario/user.yaml

- who: user1 
  what: user.create
  with: 
    path_params:
      # ":id": 42398503298092380
    query_params:
      # "limit": 20
    data_params:
      # "body": {}
  expect: user sign up ok
  obtain:
    # _id: res.body_id

- who: user1
  what: user.login
  expect: user login ok

finally, write a simple js file,

var Scenario = require('./index');
var scenario = new Scenario('./config.yaml');

describe('start test', function() {
  it('should pass all tests', function (done) {
    var options = {
      timeout: 3000
    };

    scenario.start(options, done)
      .then(function(res) {
        // test finish
      })
      .catch(function(error) {
        done(error);
      });
  });
});

and, run your test by typing

$ npm test

the result will look like

API

Test

test a scenario

return a promise

scenario-test.test(scenario)
  .then(function(res){
      // do your stuff
  })
  .catch(function(err){
      // deal with error
  });
0.1.2

9 years ago

0.1.1

9 years ago

0.1.0

9 years ago

0.0.5

9 years ago

0.0.4

9 years ago

0.0.3

9 years ago

0.0.2

9 years ago

0.0.1

9 years ago