编写单元测试使用child_process的节点服务

时间:2016-06-21 17:24:02

标签: node.js mocha child-process chai istanbul

我有一个节点服务,我使用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
});

1 个答案:

答案 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');
  });
});