我是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/
答案 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。