所以我有一个简单的功能:
wpApp = angular.module('wpApp', ['ngRoute']);
wpApp.controller("ctrlr", function($scope) {
$scope.message = 'This is the page';
});
我正在尝试使用Jasmine按照以下规范对其进行测试:
describe("A suite", function() {
var scope;
beforeEach(inject(function($rootScope, $controller) {
scope = $rootScope.$new();
$controller("controller", {
$scope: scope
});
}));
it("should have the default message", function() {
return expect(scope.message).toBe('This is the page');
});
});
但是,由于实际值不确定,因此无法正常工作。
我对AngularJS以及注入的想法比较陌生。我一直在StackOverflow,文档和教程中四处寻找,但我似乎还不太清楚我到底在做什么错。
希望它很小。有人可以帮我看看我需要更改我的规格吗?
最佳答案
您需要加载模块:
beforeEach(module('wpApp'));
然后,您需要加载正确的控制器:
$controller("ctrlr", {
$scope: scope
});
完整的代码:
describe("A suite", function() {
var scope;
beforeEach(module('wpApp'));
beforeEach(inject(function($rootScope, $controller) {
scope = $rootScope.$new();
$controller("ctrlr", {
$scope: scope
});
}));
it("should have the default message", function() {
return expect(scope.message).toBe('This is the page');
});
});
要么:
describe("A suite", function() {
var $scope;
beforeEach(function() {
module('wpApp');
inject(function($rootScope, $controller) {
$scope = $rootScope.$new();
$controller("ctrlr", {
$scope: $scope
});
})
});
it("should have the default message", function() {
return expect($scope.message).toBe('This is the page');
});
});
关于javascript - 有人可以帮忙解释一下如何使用Jasmine测试此AngularJS吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24064000/