一个Angular Controller Karma-Jasmine测试可以工作,但另一个不行
One Angular Controller Karma-Jasmine test works, but not another one
最后我得到了一个业力测试工作的角度控制器。但是,如果我尝试使用另一个控制器执行几乎相同的测试,则无法使用错误信息:Error: [ng:areq] Argument 'Test2Controller' is not a function, got undefined
工作试验:
describe('TestController: - ', function() {
beforeEach(module('myApp'));
var scope, $controller, httpBackend;
beforeEach(inject(function ($rootScope, _$controller_, $httpBackend) {
scope = $rootScope.$new();
httpBackend = $httpBackend;
$controller = _$controller_;
}));
afterEach(function () {
httpBackend.verifyNoOutstandingExpectation();
httpBackend.verifyNoOutstandingRequest();
});
describe('version testing; -', function() {
it("tests the version ", function() {
httpBackend.whenGET('url').respond(200, {"meta":{"apiVersion":"0.1","code":200,"errors":null}});
var $scope = {};
var controller = $controller('TestController', { $scope: $scope });
httpBackend.flush();
expect($scope.version.meta.apiVersion).toEqual('0.1');
expect($scope.version1).toEqual('1');
})
})
});
这里一切正常。但是这个没有:
describe('Test2Controller: - ', function() {
beforeEach(module('myApp'));
var scope, $controller, httpBackend;
beforeEach(inject(function ($rootScope, _$controller_, $httpBackend) {
scope = $rootScope.$new();
httpBackend = $httpBackend;
$controller = _$controller_;
}));
afterEach(function () {
httpBackend.verifyNoOutstandingExpectation();
httpBackend.verifyNoOutstandingRequest();
});
describe('test 2 testing; -', function() {
it("tests the test2 ", function() {
httpBackend.whenGET('url').respond(200, {"meta":{"apiVersion":"0.1","code":200,"errors":null}});
var $scope = {};
var controller = $controller('Test2Controller', { $scope: $scope });
httpBackend.flush();
expect($scope.testVal).toEqual('Test Value');
})
})
});
我也在karma配置中注册了测试文件,但它只适用于第一个。没有测试环境(我的意思是我的纯angular应用程序),所有东西,每个控制器,都工作得很好。我做错了什么?
我想知道错误信息是否属实:至少在这种情况下,没有'Test2Controller'。也许它有别的名字?或者它存在于一个源文件中,而没有包含在karma.conf.js中?不能确定,但我猜你的测试很好,问题是因果报应找不到你的控制器。
您可能还想在浏览器实例karma启动时尝试调试按钮。这打开了另一个页面,你可以在chrome开发工具或firebug或你最喜欢的JavaScript调试器中检查。继续深入研究,看看业力实际上装载了什么,你可能会发现问题所在。
相关文章:
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 我的shareService在angular 2中发送值工作正常,但当我渲染我的另一个组件时,会获得默认值
- DIV怎么能像Javascript中的另一个元素一样工作呢
- 当单元格内容由于forumula从另一个工作表编译数据而更改时发送电子邮件
- jQuery点击()事件在另一个点击()中获胜'我不能在手机上工作
- 在页面中使用了两次多个图像上传,但第一个正在工作,另一个不起作用
- 将搜索按钮从一个站点复制到另一个站点:此搜索按钮如何工作,以及如何重现其操作
- 另一个 ng-click() 未按预期工作
- 一个对象怎么能像返回自身和另一个对象一样工作
- 另一个按钮内的按钮不会;不能在Firefox(Angular Material)中工作
- 由于另一个干扰函数,Javascript函数无法正常工作
- 将数据从一个工作表复制到另一个工作表;使用目标工作表中的复制数据创建一个表
- 即使我从另一个工作小提琴复制代码,JSFiddle 也不起作用
- 根据条件将行从一个工作表复制到另一个工作表
- 如何在不移动过滤功能的情况下将一组过滤后的数据移动到另一个工作表
- 将2D数组复制到另一个工作表
- 如何编写一个脚本,清除所需工作表(其名称在另一个工作表的单元格中指定)的(所有)内容
- 复制&在复制到另一个工作表时,修改每个表单提交的特定值
- 在Google Sheets中按列名从一个工作表提取单元格值到另一个工作表
- 将行有条件地复制到另一个工作表,并在行更新后删除它们