在我的 Ember App Kit 应用程序中测试 Ember Simple Auth 时,我想模拟服务器登录响应。但是,使用以下代码在访问函数上调用单击操作时,我会收到一个不透明的错误“输入意外结束”:
var App;
module('Acceptances - SignIn', {
setup: function(){
App = startApp();
this.xhr = sinon.useFakeXMLHttpRequest();
this.server = sinon.fakeServer.create();
this.server.autoRespond = true;
sinon.spy(Ember.$, 'ajax');
this.server.respondWith('POST', '/oauth/token', [
200,
{ 'Content-Type': 'application/json' },
'{"access_token":"secret token 2!","token_type":"bearer","expires_in":7200}'
]);
},
teardown: function() {
Ember.run(App, 'destroy');
}
});
test('authentication works correctly', function() {
visit('/login').fillIn('#identification', "foo@bar.com").fillIn('#password', "password").click('button[type="submit"]').then(function() {
ok(!exists('a:contains(Login)'), 'Login button is not displayed when authenticated');
});
});
#identification 和#password 输入字段存在,并且提交按钮存在于包含它们的字段上。
我在标题中包含 sinon 和 qunit。我是用错误的方式称呼sinon还是犯了其他错误?
编辑:解决方案:通过还包括 sinon-qunit,问题消失了。如果不包括 sinon-qunit,您似乎无法将 sinon 与 Ember App Kit qunit 测试一起使用。
编辑 2:我在这里开源了一个带有模拟登录响应的测试示例:https ://github.com/digitalplaywright/eak-simple-auth