Fork me on GitHub

ProxyTester

代理测试者 - Enjoy coding


Usage

npm install proxy-tester
            

Service

Service 是一个对象,它对应一个代理规则。一个service就是对一类网络的响应与测试样例。

Demo:
var Service = require('proxy-tester').Service;
var service = new Service({
    url: 'http://xxx.xxx.com/test',
    name: 'api',
    method: 'get',
    verify: function(req, res, services) {
        // testing code
        // response and testing
        // you can use this.xxx and req, res, services ...
    }
});
            

Unit

Unit 是一个对象,它对于一组测试样例,一个Unit可以包含多个Service。

Demo:
var Unit = require('proxy-tester').Unit;
unit = new Unit(UNIT_ID, [
    service1,
    service2,
    ...
]);
            

proxy

proxy 是代理暴露出来的方法,用于将http请求代理到测试代理服务

Demo:
var app = express();
app.use(function(req, res) {
    require('proxy-tester').proxy(req, res);
});
app.listen(80);
            

Service.log

输出log日志(触发unit的log事件)

service.log('testing infomation');
            

Service.setData

设置该测试样例的数据(用于Unit下各个Service的数据共享)

service.setData({
    t: 'hello',
    ...
});
            

Service.getData

获取样例数据

service.getData();
            

Service.deepEqual

断言:深度相等

params
actual:{*}
expected:{*}
message:{String}

service.deepEqual({
    a: '1'
}, {
    a: '2'
}, 'testing message info');
            

Service.equal

断言:相等

params
actual:{*}
expected:{*}
message:{String}

service.equal({
    a: '1'
}, {
    a: '2'
}, 'testing message info');
            

Service.notDeepEqual

断言:非深度相等

params
actual:{*}
expected:{*}
message:{String}

service.notDeepEqual(true, false, 'testing message info');
            

Service.notEqual

断言:非相等

params
actual:{*}
expected:{*}
message:{String}

service.notEqual(true, false, 'testing message info');
            

Service.notStrictEqual

断言:非严格相等

params
actual:{*}
expected:{*}
message:{String}

service.notStrictEqual(1, '1', 'testing message info');
            

Service.strictEqual

断言:严格相等

params
actual:{*}
expected:{*}
message:{String}

service.strictEqual(1, '1', 'testing message info');
            

Service.throws

抛出错误

params
message:{String}

service.throws('testing error');
            

Unit.start

运行这一组测试样例

unit.start();
            

Unit.stop

停止这一组测试样例

unit.stop();
            

Unit.registerService

为该Unit添加一个Service

unit.registerService(service);
            

Unit.addListener

监听该组Unit产出的信息

params
type:{'log' | 'success' | 'failure'}, event type
hanlder:{Function}

return
message:{String}

unit.addListener('log', function(e) {
    console.log(e.message);
});
            

Unit.removeListener

移除事件监听

params
type:{'log' | 'success' | 'failure'}, event type hanlder:{Function}

unit.addListener('log', function(e) {
    console.log(e.message);
});
            

res & req

reqres 是 被express扩展的nodejs http 请求和返回的对象。具体api请参考express官方文档。