使用 Meteor 进行身份验证测试
Authentication testing with Meteor
我正在编写需要身份验证的流星测试,并且遇到了一系列问题。
这是我的代码:
MochaWeb?.testOnly ->
describe "Login", ->
describe "security", ->
it 'should take you to /login/ if you are not logged in', ->
Meteor.flush()
chai.assert.equal Router.current().url, '/login/'
it 'should allow logins and then take us to /', ->
Meteor.flush()
Accounts.createUser username: 'test', password: 'test'
Meteor.loginWithPassword 'test', 'test', (err) ->
console.log err
chai.expect(err).to.be undefined
chai.assert.equal Router.current().url, '/'
我的测试通过了,尽管我收到控制台消息,例如传递调用结果时出现异常 'login': TypeError: object is not a function
我的 console.log 电话给了我
{错误:403,原因:"User not found",详细信息:未定义,消息:"User not found [403]",错误类型:"Meteor.Error"…}
在控制台上,速度日志上没有任何内容window
- 我的用户没有按照我的预期进行身份验证。一个原因可能是我的应用程序没有帐户密码包,因为我不想要它(我只希望 google 应用程序用户能够登录)。但是我想要一种简单的方法来处理流星测试中的身份验证,因为我的大多数测试都涉及经过身份验证的用户。
- 我不确定 assert equal 是否有效,或者我必须设置某种超时来等待重定向。在这种情况下,这不是问题,但我是否必须将我拥有的每个测试方法都嵌套在 loginWithPassword 中?我会觉得这有点不舒服。
非常感谢任何帮助和建议!
最佳,
你确定你已经创建了用户吗?我认为您应该在 fixture.js 中创建它。
MochaWeb.testOnly(function() {
describe("Client", function() {
describe("firstTest", function() {
// Meteor.users.remove({});
before(function(done) {
Accounts.createUser(currentUser, function(err, success) {
Meteor.loginWithPassword(currentUser, function(err) {
console.log("This works");
// done();
});
});
});
});
});
});
这是源文件,我在其中实现了相同的
https://github.com/trinisofttechnologies/mocha-test/blob/master/tests/mocha/client/client.coffee
这是代码所在的仓库
https://github.com/trinisofttechnologies/mocha-test
我正在编写需要身份验证的流星测试,并且遇到了一系列问题。 这是我的代码:
MochaWeb?.testOnly ->
describe "Login", ->
describe "security", ->
it 'should take you to /login/ if you are not logged in', ->
Meteor.flush()
chai.assert.equal Router.current().url, '/login/'
it 'should allow logins and then take us to /', ->
Meteor.flush()
Accounts.createUser username: 'test', password: 'test'
Meteor.loginWithPassword 'test', 'test', (err) ->
console.log err
chai.expect(err).to.be undefined
chai.assert.equal Router.current().url, '/'
我的测试通过了,尽管我收到控制台消息,例如传递调用结果时出现异常 'login': TypeError: object is not a function
我的 console.log 电话给了我
{错误:403,原因:"User not found",详细信息:未定义,消息:"User not found [403]",错误类型:"Meteor.Error"…}
在控制台上,速度日志上没有任何内容window
- 我的用户没有按照我的预期进行身份验证。一个原因可能是我的应用程序没有帐户密码包,因为我不想要它(我只希望 google 应用程序用户能够登录)。但是我想要一种简单的方法来处理流星测试中的身份验证,因为我的大多数测试都涉及经过身份验证的用户。
- 我不确定 assert equal 是否有效,或者我必须设置某种超时来等待重定向。在这种情况下,这不是问题,但我是否必须将我拥有的每个测试方法都嵌套在 loginWithPassword 中?我会觉得这有点不舒服。
非常感谢任何帮助和建议!
最佳,
你确定你已经创建了用户吗?我认为您应该在 fixture.js 中创建它。
MochaWeb.testOnly(function() {
describe("Client", function() {
describe("firstTest", function() {
// Meteor.users.remove({});
before(function(done) {
Accounts.createUser(currentUser, function(err, success) {
Meteor.loginWithPassword(currentUser, function(err) {
console.log("This works");
// done();
});
});
});
});
});
});
这是源文件,我在其中实现了相同的
https://github.com/trinisofttechnologies/mocha-test/blob/master/tests/mocha/client/client.coffee
这是代码所在的仓库 https://github.com/trinisofttechnologies/mocha-test