流星黄瓜测试server.call步骤定义错误:找不到方法[404]

时间:2015-11-25 08:05:50

标签: unit-testing meteor cucumber

我是Meteor Cucumber的新手我正在尝试进行基本测试 检查新用户
这是步骤定义代码

this.Given(/^I am a new user$/, function () {
    server.call('fixtures/reset').then(function() {
        server.call('fixtures/seedData');
    });
});

我得到了

Error: Method not found [404]  ...
  at World. (/tests/cucumber/features/step_definitions/static_page.js:17:20)

指向第一个server.call(第20列是调用c)。

这是特色
   鉴于我是新用户

这是夹具

(function () {
    'use strict';

    Meteor.methods({
        'fixtures/reset': function () {
            Meteor.users.remove({});
        },

        'fixtures/seedData': function () {
            Accounts.createUser({
                email: "bob@example.com",
                password: "testtest"
            });
        }
    });
})();

这是package.js

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

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

我不明白为什么这段代码失败了 它基于http://www.mhurwi.com/a-basic-cucumber-meteor-tutorial/

1 个答案:

答案 0 :(得分:0)

为什么你有一个测试包?这不是必要的。在Meteor应用程序文件夹的根级别,创建一个名为“tests”的目录。我的结构看起来像这样:

tests
└── cucumber
    ├── features
    │   ├── artist
    │   │   ├── artist-login.feature
    │   │   └── step_definitions
    │   │       └── artist-login.js
    │   ├── support
    │   │   └── hooks.js
    │   └── viewer
    └── fixtures
        └── artist-fixtures.js

您的灯具文件中不需要任何闭包。这是我的:

Meteor.methods({
  'reset': function () {
    Meteor.users.remove({});
  },

  'createTestAccount': function () {
    Accounts.createUser({
      email: 'test@user.com',
      password: 'test123',
      profile: {
        firstName: 'Test',
        lastName: 'User'
      }
    });
  },

  'isLoggedIn': function () {
    return !!Meteor.userId();
  }
});

如果您正在编写Meteor软件包并想要测试它,请使用TinyTest。