【问题标题】:How do I test child processes using chai and mocha?如何使用 chai 和 mocha 测试子进程?
【发布时间】:2015-04-22 19:32:26
【问题描述】:

我正在创建一个框架来在特定时间(类似 cron)执行进程并对其进行测试,我正在使用 chai-mocha-grunt。

解决方案的架构基于this example。基本上,我们有:

  • 一个主进程,它调用子进程(通过 child_process.fork)特定次数。
  • 一个子进程,它使用 setInverval() 执行某些操作;
  • 调用 Master.start() 函数的进程。

在这种架构下,我如何测试以确保使用 mocha 和 chai(使用“assert”库)在正确的时间执行线程?

换句话说,我如何让 chai '监听'线程并检查它们是否在正确的时间执行?

【问题讨论】:

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


    【解决方案1】:

    我不确定您是否需要 chai 本身来收听您的线程。如果您正在构建您链接的示例,这应该非常简单,因为Master.js 已经是一个 EventEmitter 并且它已经发出它从子进程听到的所有事件。

    你的测试结构可以这么简单:

    describe('ForkExample test', function() {
        // Set an appropriate test timeout here
        this.timeout(1000);
    
        it('should do stuff at the right time', function(done) {
            var fe = new ForkExample();
            fe.start(1);
            fe.on('event', function(type, pid, e) {
                if (type === 'child message') {
                    // Check here that the timing was within some expected range
                    done();
                }
            });
        });
    });
    

    【讨论】:

    • 谢谢!我会测试一下。
    猜你喜欢
    • 2017-02-18
    • 2013-04-11
    • 2018-02-27
    • 1970-01-01
    • 1970-01-01
    • 2018-02-16
    • 2014-12-21
    • 2015-10-01
    相关资源
    最近更新 更多