【问题标题】:Inject $log service on simple Jasmine test在简单的 Jasmine 测试中注入 $log 服务
【发布时间】:2014-01-15 00:51:18
【问题描述】:

是的,我对 Angular 和 Jasmine 完全陌生,我不知道如何为我的测试注入模拟 $log。这是测试:

(function () {
    'use strict';

    describe('basic test', function(){
        it('should just work', function(){
            var $log;

            beforeEach(inject(function(_$log_){
                $log = _$log_;
            }));

            $log.info('it worked!');
            expect($log.info.logs).toContain(['it worked!']);
        });
    });

}())

这在注入行上失败并出现错误:

TypeError: Cannot set property 'typeName' of undefined

我错过了什么?

【问题讨论】:

    标签: angularjs jasmine angular-mock


    【解决方案1】:

    怎么样:

    describe('basic test', function(){
        var log;
        beforeEach(inject(function(_$log_){
            log = _$log_;
        }));
    
        it('should just work', function(){
            log.info('it worked!');
            expect(log.info.logs).toContain(['it worked!']);
        });
    });
    

    【讨论】:

    • 你能详细说明改变的意义吗?这里有什么不同?
    • 他将beforeEach 移出 it(它是不可见和被忽略的)并进入describe的主体
    • 我实际上是在复制这个测试,并得到参考错误:“inject is not defined” 这个设置有技巧吗?我有茉莉花和 ngMocks
    猜你喜欢
    • 1970-01-01
    • 2018-06-04
    • 2013-03-13
    • 2017-02-01
    • 2016-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-31
    相关资源
    最近更新 更多