Tôi muốn thử nghiệm điều khiển nàyLàm thế nào để tiêm giá trị góc và hằng số góc vào thử nghiệm đơn vị nghiệp?
/controllers/datetimepicker.js
angular.module('c2gyoApp')
.value('smConfig', {
rate: 'A',
tariff: 'classic'
})
.controller('DatetimepickerCtrl', [
'$scope',
'stadtmobilRates',
'smConfig',
function($scope, stadtmobilRates, smConfig) {
...
$scope.getCurrentRate = function(rate, tariff) {
// studi and classic have the same rates
if (tariff === 'studi') {
tariff = 'classic';
}
return stadtmobilRates[tariff][rate];
};
...
}
]);
Tôi đã thay đổi bộ điều khiển kể từ khi tôi đã viết các bài kiểm tra. Một số hằng số đã chuyển sang angular.module('c2gyoApp').value('smConfig'){}
và tôi cũng cần liên tục từ angular.module('c2gyoApp').constant('stadtmobilRates'){}
:
/services/stadtmobilrates.js
angular.module('c2gyoApp')
.constant('stadtmobilRates', {
'classic': {
'A': {
'night': 0,
'hour': 1.4,
'day': 21,
'week': 125,
'km000': 0.2,
'km101': 0.18,
'km701': 0.18
},
...
});
Đây là thử nghiệm của tôi cho đến nay:
/test/spec /controllers/datetimepicker.js
describe('Controller: DatetimepickerCtrl', function() {
// load the controller's module
beforeEach(module('c2gyoApp'));
var DatetimepickerCtrl;
var scope;
// Initialize the controller and a mock scope
beforeEach(inject(function($controller, $rootScope) {
scope = $rootScope.$new();
DatetimepickerCtrl = $controller('DatetimepickerCtrl', {
$scope: scope
});
}));
it('should calculate the correct price', function() {
expect(scope.price(10, 10, 0, 0, 'A', 'basic')
.toFixed(2)).toEqual((18.20).toFixed(2));
...
});
});
Làm cách nào để tiêm angular.module('c2gyoApp').value('smConfig'){}
và angular.module('c2gyoApp').constant('stadtmobilRates'){}
vào thử nghiệm? Tôi đang sử dụng bố cục tiêu chuẩn yeoman. Tệp karma.conf bao gồm tất cả các tệp .js cần thiết, do đó, đó chỉ là câu hỏi về nơi để chèn các phần tử góc.