【发布时间】:2014-04-14 11:22:59
【问题描述】:
您好,我的测试服务需要帮助。
我有这个服务: MyService.js
还有这个控制器:
angular.module('MyControllers', [])
.controller('MyCtrl2', ['$scope', 'FnEncode', function ($scope, FnEncode) {
$scope.encoded1 = "";
$scope.encoded2 = "";
$scope.encoded3 = "";
$scope.encode1 = function() {
$scope.encoded1 = FnEncode.encodeUUI(FnEncode.encodeFunctionalNumber($scope.numberToEncode));
};
$scope.encode2 = function() {
$scope.encoded2 = FnEncode.encodeUUI(FnEncode.encodeFunctionalNumber($scope.numberToEncode)+
FnEncode.encode2($scope.EncodeWith2));
};
$scope.encode3 = function() {
$scope.encoded3 = FnEncode.encodeUUI(FnEncode.encodeFunctionalNumber($scope.numberToEncode)+
FnEncode.encode3($scope.EncodeWith3));
};
}]);
当我在文本字段中输入 123 时,服务基本上是在做的,它输出我 00050221F3,其中前 00 是 encodeUUI。 我确实测试过这样的东西,但它说无法读取属性编码1:
'use strict';
describe('My services', function() {
beforeEach(module('myApp'));
beforeEach(module('MyServices'));
describe('MyCtrl2', function() {
var scope, ctrl;
beforeEach(inject(function($rootScope, $controller) {
scope = $rootScope.$new();
ctrl = $controller('MyCtrl2', {$scope: scope});
}));
it('should output: ', function(scope) {
expect(scope.encoded1.toBe("00050221F3"));
});
});
});
希望有人能告诉我哪里做错了?
【问题讨论】:
-
你为什么使用 $scope.encoded1 和 $scope.encode1?您可以只使用 $scope.encode1 并让函数返回 encodeUUI() 的结果,而不是将其分配给 encoded1。
标签: javascript angularjs unit-testing service karma-runner