0

我一直在尝试测试我正在编写的使用角度数据数据存储的服务,但无法让它调用传递给then(). 我有一个基本示例,说明了我在下面尝试做的事情以及我期望发生的事情。任何人都可以阐明我做错了什么以及为什么这不能按预期工作吗?

我希望这个测试能够通过并打印this is called到控制台。它也没有,以“预期错误为真”而失败。

describe('usage of expectFind', function(){
    beforeEach(function (done) {
        inject(function (_DS_) {
            DS = _DS_;
            done();
        });
    });

    it('should call the callback passed to then', function(done){
        DS.expectFind('foo', 1).respond([{a: 'thing'}])

        var called = false;
        DS.find('foo', 1).then(function(aFoo){
            console.log('this is called');
            called = true;
            done();
        });
        expect(called).toBe(true);
    });
});
4

1 回答 1

0

好的,我们解决了,我们需要DS.flush()在期望之前打电话。这实际上是触发回调被调用的原因。

describe('usage of expectFind', function(){
beforeEach(function (done) {
    inject(function (_DS_) {
        DS = _DS_;
        done();
    });
});

it('should call the callback passed to then', function(done){
    DS.expectFind('foo', 1).respond([{a: 'thing'}])

    var called = false;
    DS.find('foo', 1).then(function(aFoo){
        console.log('this is called');
        called = true;
        done();
    });


    // this is what's missing
    DS.flush();

    expect(called).toBe(true);
});

});

于 2015-01-27T15:17:59.180 回答