在茉莉花测试中注入定制服务

时间:2016-08-27 16:38:18

标签: angularjs node.js jasmine karma-jasmine angular-mock

我为学校写了一个yathzee游戏,现在我需要对我的计算进行单元测试。 我尝试注入我的服务,但它未定义。尝试了很多东西,真的不知道如何设置它。我很高兴因业开始工作。 所以这是我的测试文件

describe('Users factory', function() {
beforeEach(module('yathzeeCalculateService'));

var myservice;

beforeEach(inject('yathzeeCalculateService', function(yathzeeCalculateService){
  myservice = yathzeeCalculateService;
}));


describe('Test chance', function() {
  it('should be defined', function(){
    expect(myservice).toBeTruthy();
  });
    it('good count', function(){
        var dices = [1,1,1,1,1];
        expect(myservice.sum(dices)).toEqual(5);
    });
});
});

这是我的服务

(function () {
    angular.module('myApp').factory('yathzeeCalculateService', yathzeeCalculateService);
yathzeeCalculateService.$inject = ['_'];

function yathzeeCalculateService(_) {

   ... 
    return {

        sum : sum,
        getStraight : getStraight,
        isSmallStraight : isSmallStraight,
        isLargeStraight : isLargeStraight,
        getSameCount : getSameCount,
        manyOfAKind : manyOfAKind,
        getAmountOfArrayNumber : getAmountOfArrayNumber,
        threeOfAKind : threeOfAKind,
        fourOfAKind : fourOfAKind,
        yahtzee : yahtzee,
        fullHouse : fullHouse
    };
}
})();

我对数组函数使用下划线,是否必须在测试中注入?如果,怎么样?

1 个答案:

答案 0 :(得分:0)

模块名称错误,模块名称应该是正确的

模块名称无效

beforeEach(module('yathzeeCalculateService'));

你必须使用

beforeEach(module('myApp'));