【问题标题】:Async test doesn't error on fail异步测试在失败时不会出错
【发布时间】:2013-07-02 10:56:25
【问题描述】:

我在进行简单的异步测试时遇到了一些麻烦。以下代码不会在控制台中抛出任何错误,即使它应该,因为传递给函数的data 不等于0:

define([
    'intern!bdd',
    'intern/chai!expect'
], function (bdd, expect) {
    with (bdd) {
        describe('Test', function () {
            it('async test', function(){
                var dfd = this.async(2000);
                var wait = function(ms) {
                    setTimeout(function(){
                        dfd.resolve('test');
                    }, ms);

                    return dfd.promise;
                };

                wait(1500).then(dfd.callback(function (data) {
                    // data === 'test', so this should fail.
                    expect(data).to.equal(0);
                }), dfd.reject.bind(dfd));
            });
        });
    }
});

我很确定我在某个地方搞砸了,因为直到现在我才使用 Promise,但我不知道在哪里。任何想法都会有很大帮助。谢谢!

【问题讨论】:

    标签: javascript intern


    【解决方案1】:

    您将相同的 Deferred 对象用于两个不同的异步操作并在第一次解决它(= 成功测试)。您需要为等待功能创建自己的单独 Deferred 对象:

    define([
        'intern!bdd',
        'intern/chai!expect',
        'intern/node_modules/dojo/Deferred'
    ], function (bdd, expect, Deferred) {
        with (bdd) {
            describe('Test', function () {
                it('async test', function(){
                    var dfd = this.async(2000);
                    var wait = function(ms) {
                        var waitDfd = new Deferred();
                        setTimeout(function(){
                            waitDfd.resolve('test');
                        }, ms);
    
                        return waitDfd.promise;
                    };
    
                    wait(1500).then(dfd.callback(function (data) {
                        // data === 'test', so this should fail.
                        expect(data).to.equal(0);
                    }), dfd.reject.bind(dfd));
                });
            });
        }
    });
    

    【讨论】:

      猜你喜欢
      • 2018-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多