我有一个节点服务,我使用child_process来传播一个子节点,在我的例子中,子节点是一个C ++二进制文件,它接受STDIN并传输STDOUT。该服务按预期工作,现在我正在尝试使用mocha / chai为服务方法编写单元测试并通过伊斯坦布尔运行测试。我已经为这些stuufs奠定了基础,但只想获得一个如何为使用child_process的节点服务编写单元测试的示例。基于该示例,我可以尝试为我的服务编写单元测试,并在Instanbul上运行它们以生成覆盖报告。
该服务会产生这样的孩子,
var spawn = require('child_process').spawn,
child = spawn(pathToBinary);
child.stdin.write('JSON');
child.stdout.on('data', function (data) {
//perform operations here
});
答案 0 :(得分:1)
这是一个非常简单的例子,但可能会有所帮助。
'use strict';
var spawn = require('child_process').spawn;
var expect = require('chai').expect;
describe('test', function() {
it('should return testing', function(done) {
var cat = spawn('/bin/cat');
cat.stdout.on('data', function (data) {
expect(data.toString()).to.equal('testing');
done();
});
cat.stdin.write('testing');
});
});