Angularjs if-else语句的单元测试
我想对if-else语句执行单元测试,这样代码覆盖的分支部分就可以给出好的结果 Controller.jsAngularjs if-else语句的单元测试,angularjs,unit-testing,karma-runner,karma-coverage,Angularjs,Unit Testing,Karma Runner,Karma Coverage,我想对if-else语句执行单元测试,这样代码覆盖的分支部分就可以给出好的结果 Controller.js (function () { "use strict"; angular .module("app.login") .controller("LoginController", LoginController); LoginController.$inject = ["$scope", "$http", "$state", "$r
(function () {
"use strict";
angular
.module("app.login")
.controller("LoginController", LoginController);
LoginController.$inject = ["$scope", "$http", "$state", "$rootScope", "logger", "$location"];
/**
* @ngdoc controller
* @name app.login.controller
* @memberof app.login
* @summary
* This is the controller for the login module
*
* @param {Object} $scope
* @param {Object} $http
* @param {Object} $state
* @param {Object} $rootScope
* @param {Function} logger
* @constructor
*/
function LoginController ($scope, $http, $state, $rootScope, logger, $location) {
var vm = this;
this.cancel = $scope.$dismiss;
logger.info("Started LoginController");
/**
* login function
*
* @memberof app.login.controller
*/
this.login = function () {
if ($scope._username == "admin" && $scope._password == "password") {
$state.go("main.login.success");
} else {
logger.error("Login Unsuccessful");
}
};
}
})();
testing.js
describe("LoginController", function () {
var $scope;
var controller;
var logger;
var $cookies;
var temp;
beforeEach(module("app.login"));
beforeEach(inject(function ($controller, _$rootScope_, _logger_, _$cookies_) {
$scope = _$rootScope_.$new();
controller = $controller("LoginController", {
$scope: $scope,
logger: _logger_
});
$scope.$digest();
}));
it("admin should be the username", function () {
$scope._username = "admin";
expect($scope._username).toEqual("admin");
});
it("is username is admin", function () {
expect(controller.login).toBe(true);
});
我两个都试过了,但它还不包括if-else分支。谁能指出我在上面的代码中遗漏了什么。谢谢 编写测试用例,如下所示
it("admin should be the username", function () {
$scope._username = "admin";
$scope._password == "password";
spyOn($state, 'go');
controller.login();
expect($state.go).toHaveBeenCalledWith('main.login.success');
});
it("should log error if username or password is incorrect", function () {
$scope._username = "admin";
$scope._password == "tests";
spyOn(logger, 'error');
controller.login();
expect(logger.error).toHaveBeenCalledWith('Login Unsuccessful');
});
你首先必须观察你想观察的方法,并做出预期