OK, Итак, я впервые пытаюсь начать модульное тестирование с помощью Jasmine на проекте Angular JS, и я ударяю несколько дорожных блоков.
я после очень хорошей ссылки в этом блоге о том, как set this all up in Visual Studio
Мой тест в проекте библиотеки классов и выглядит так: -
/// <reference path="../../../../src/tasks.web/scripts/angular-1.2.10.js" />
/// <reference path="../../../../src/tasks.web/scripts/angular-route-1.2.10.js" />
/// <reference path="../../../../src/tasks.web/scripts/app.js" />
/// <reference path="../../../../src/tasks.web/scripts/controllers.js" />
/// <reference path="../lib/angular/angular-mocks.js" />
describe("TaskListController", function() {
beforeEach(module('taskApp.controllers'));
it("has tasks defined", function() {
var $scope = {};
$controller("TaskListController", { $scope: $scope });
expect($scope.tasks).toBeDefined();
});
});
Остальные мои приложения выглядит как это: -
app.js
var app = angular.module("taskApp", [
"ngRoute",
"appControllers"
]);
app.config(["$routeProvider",
function($routeProvider) {
$routeProvider.
when("/tasks", {
templateUrl: "partials/task-list.html",
controller: "TaskListController"
}).
otherwise({
redirectTo: "/tasks"
});
}
]);
controller.js
var appControllers = angular.module("appControllers", []);
appControllers.controller("TaskListController", function ($scope) {
$scope.tasks = {};
});
Все указанные файлы находятся там (нет 404s). Visual Studio найти тестовый штраф и запускает его, однако я получаю ReferenceError: Can't find variable: $controller
Любая помощь с благодарностью получил, как я знаю, что я очень близко к тому, эту работу, и я знаю, что это просто что-то простое, что я отсутствует.
В тесте имя контроллеров модуль имеет другое имя. 'BeforeEach (модуль (' taskApp.controllers '));' должен быть вместо 'beforeEach (module (' appControllers ')); ? – klode
спасибо, что не совсем это сделал, но, объединив его с предложением Майкла, он решил это. – baynezy