0

$http 呼び出しをモックせずに、angularjs サービスの e2e テストを実行したいと考えています。fsSvc.getSubject を呼び出すと、複数の組み込み非同期呼び出しが発生し、最終的には、呼び出しを行った場所でコールバック関数を呼び出すことになります。

これがうまくいかないかどうかわからない - モックされていない場合、$http は実際に呼び出しを行うべきではありませんか?:

 it('should pass auth', function(done) {
        inject(function (fsSvc) {
            var cb = sinon.spy();
            stubs.updateRecord = sinon.stub(dataSvc, 'updateRecord');

            dataSvc.LO.famSrch.access_token_expires = false;

            fsSvc.getSubject("abc", function(err, data) {
                console.log("err:" + err);
                done();
                cb();
            });

            $timeout.flush();
            expect(dataSvc.LO.famSrch.discovery).to.not.be.undefined;
            expect(dataSvc.LO.famSrch.discovery.links).to.not.be.undefined;
            expect(dataSvc.LO.famSrch.access_token).to.not.be.undefined;
            expect(dataSvc.LO.famSrch.username).to.equal("test");
            expect(dataSvc.LO.famSrch.password).to.equal(btoa("test"));
            expect(dataSvc.LO.famSrch.access_token_expires).to.be.greaterThan(3600000);

            expect(stubs.updateRecord.callCount).to.equal(1);
            expect(stubs.updateRecord.args[0][1]).to.equal("localOption");
            expect(cb.callCount).to.equal(1);
        })
    });
4

1 に答える 1