Meteor.js:在使用Chimp进行测试时使用server.call

时间:2016-02-09 22:28:50

标签: meteor cucumber chimp.js

我在编写功能测试时遇到触发方法调用的问题。我实际上并没有在黑猩猩终端日志中给出错误,但是server.call行是突出显示失败的地方。我相信这可能与应用程序的文件夹结构(我基于Letterpress松散地)或者定义并随后触发调用的顺序有关。当我将方法调用移动到我的main.js文件(在应用程序的根文件夹中)时,它没有问题。

hooks.js 路径:/app/tests/cucumber/features/support/hooks.js

(function(){
    module.exports = function() {
        this.Before(function() {
            console.log("server calling");
            server.call("fixtures/resetUsers"); //test stops here
        });
    };
})();

fixtures.js /app/packages/fixtures/fixtures.js

(function(){
    'use strict';

    Meteor.methods({
        "fixtures/resetUsers": function() {
            Meteor.users.remove({});
        }
    });
})();

package.js /app/packages/fixtures/packages.js

Package.describe({
    name: 'forum:fixtures',
    version: '0.0.1',
    summary: '',
    debugOnly: true
});

Package.onUse(function(api) {
    api.versionsFrom('1.2.1');
    api.use('ecmascript');
    api.addFiles('fixtures.js', 'server');
});

注意:我最初没有在packages文件夹中包含fixtures文件夹(它仍然没有工作)但是@ Xolv.io遇到了this post,Chimp.js的开发人员这样做。

2 个答案:

答案 0 :(得分:1)

使用新的黑猩猩,你可以使用:

server.execute(function() {
  // code you put here will run on the server
});

查看此存储库以获取示例: https://github.com/xolvio/automated-testing-best-practices/

答案 1 :(得分:0)

在你的样本仓库中,如果你定义一个流星方法,'某事',你可以调用server.call('something')。 如果你有一个标准的方法定义(甚至不是流星方法),比如说something2 = function(){},使用xolvio:backdoor,你可以使用server.execute('something2')。 (用--ddp开关调用黑猩猩)