用Intern编写异步测试

时间:2014-04-29 16:43:03

标签: asynchronous dojo functional-testing intern

我正在尝试编写一个集成测试,它调用我的真实服务(返回JSON)并确保JSON的格式正常。

我收到错误

Error: Unable to load http://localhost:7200/users/signoff status: 0
ErrorCtor@http://localhost:9000/resources/www/tests/lib/dojo/errors/create.js:29

onError@http://localhost:9000/resources/www/tests/lib/dojo/request/xhr.js:133 

我有一个服务,它具有与服务器交互的实际功能,并且它返回来自每个功能的promises。我的测试看起来像这样。

 define([
    'intern!bdd',
    'intern/chai!expect',
    'app/services/myService'
 ], function (bdd, expect, MyService) {
with (bdd) {
    describe('Service Tests', function () {
        var service;

        before(function () {
            service = MyService.getInstance();
        });

        it('should sign user off', function(){
            var dfd = this.async(2000);
            service.signUserOff().then(dfd.callback(function (data) {
                expect(data).to.exist;
                expect(data.status).to.exist;
            }), dfd.reject.bind(dfd));
        });
    });
}
});

service.signOff()调用实际服务,然后返回一个promise。我用Firefox和PhantomJS都尝试了这个,我一直收到这个错误。奇怪的是,如果在浏览器中手动加载,错误中的URL工作正常。

我想知道这是否与Intern无法加载请求/ xhr.js并因此抛出此错误有关?

1 个答案:

答案 0 :(得分:0)

您正在进行的请求被视为cross-site request,因此您需要确保服务器正确响应此类请求的相应CORS标头,或者您需要确保set up a reverse proxy XHR请求是通过相同的来源发生的。