javascript - 使用 toBeDefined 的 karma 测试 Controller 失败

标签 javascript angularjs jasmine karma-runner

我的测试失败,因为它说我的 Controller 未定义。很奇怪,我认为我做的一切都是对的。

describe('homeCtrl', function() {
  var httpBackend, controller, scope;

  beforeEach(module('App'));

  beforeEach(inject(function($httpBackend, $controller) {
    scope = {};
    httpBackend = $httpBackend;
    controller = $controller('homeCtrl', { $scope: scope });
  }));

  it('should exist', function() {
    expect(controller).toBeDefined();
  });
});

我有我的 home.js,它是这样的 Controller

var App = angular.module('App')

App.controller('homeCtrl', function($scope) {

})

错误是预期未定义将被定义。

最佳答案

您的home.js应该在模块中注入(inject)依赖项,将其更改为,

var App = angular.module('App',[])
App.controller('homeCtrl', function($scope) {

})

关于javascript - 使用 toBeDefined 的 karma 测试 Controller 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41431465/

相关文章:

javascript - 更改页面时AngularJS自定义窗口

javascript - Jasmine:在spyOn之后调用带有函数引用的真实函数

java - 支柱 2 s :select tag dynamic id

javascript - 尝试在导出期间从数据表中剥离 html

javascript - 获取 $(this) 元素的 html 并插入到 $scope.variable 中

javascript - angular ng-repeat 仅搜索特定字段

angularjs - Protractor/ Jasmine 条件测试用例

jasmine - List 实例化期间出错! (ItemSliding -> List),使用 TestComponentBuilder 对 ionic2 组件进行单元测试

javascript - 如何自定义分页jQuery?

javascript - 按视口(viewport)大小更改文本