我试图用Jasmine为Angularjs编写单元测试。这是我的控制器:
function HomeController($scope, fav, news, materials) {
console.log('home controller');
$scope.testMe = true;
}
module.controller('HomeController', HomeController);
和测试
describe('Home controller tests', function() {
var $rootScope, $scope, controller;
beforeEach(function() {
module('ap.designer');
inject(function($injector) {
$rootScope = $injector.get('$rootScope');
$scope = $rootScope.new();
controller = $injector.get('$controller')('HomeController', {$scope: $scope});
});
});
describe('test controller functions', function() {
it('Should return true', function() {
expect($scope.testMe).toBe(true);
});
});
});
测试失败,即使我试图测试期望(true). toBe(true);
茉莉花,因果报应,棱角分明的嘲弄都在我的索引里。jasmine调试页面中的html,还有测试脚本。
我发现如果删除beforeach()块,expect(true)。托比(真的)通过了。
下面是一个错误:
minErr/<@http://localhost:9876/base/bower_components/angular/angular.js:68:12
forEach@http://localhost:9876/base/bower_components/angular/angular.js:322:11
loadModules@http://localhost:9876/base/bower_components/angular/angular.js:4548:5
createInjector@http://localhost:9876/base/bower_components/angular/angular.js:4470:19
workFn@http://localhost:9876/base/bower_components/angular-mocks/angular-mocks.js:2954:44
angular.mock.inject@http://localhost:9876/base/bower_components/angular-mocks/angular-mocks.js:2934:35
@http://localhost:9876/base/src/js/modules/ap.designer/test/controllers/home/HomeControllerSpec.js:12:9
window.__karma__.loaded@http://localhost:9876/debug.html:42:9
@http://localhost:9876/debug.html:78:5
检查你的模块依赖。也许你的依赖之一没有加载在karma配置文件部分,所以你的模块创建失败。
问题内容: 我一直在努力围绕Jasmine 2.0和AngularJS的承诺。我知道: 茉莉花2.0引入的功能,以取代旧的和功能 在触发摘要循环之前,AngularJS Promise 不会解析 如何在Jasmine 2.0中使用新的异步语法测试AngularJS Promise? 问题答案: 致电后: 致电。这将强制进行摘要循环并传播承诺解决方案 致电。告诉Jasmine异步测试已经完成 这是一
问题 假如你正在使用 CoffeeScript 写一个简单地计算器,并且想要验证其功能是否与预期一致。可以使用 Jasmine 测试框架。 讨论 在使用 Jasmine 测试框架时,你要在一个参数(spec)文档中写测试,文档描述的是代码需要测试的预期功能。 例如,我们希望计算器可以实现加法和减法的功能,并且可以正确进行正数和负数的运算。我们的 spec 文档如下列所示。 # calculator
全部: 我对Jasmine测试非常陌生,我想知道的一个关于异步测试的问题是: 有谁能简单解释一下Jasmine是如何知道里面有一个done()函数调用并等待它完成的? 例如,如果我把一些异步调用在之前: Jasmine怎么知道它应该让规范测试等待? 谢谢
问题内容: 我正在尝试测试AngularJS服务,但似乎不起作用。 谁能解释为什么响应为空? 问题答案: 试试这个: 请求返回的响应对象在属性(docs)中具有响应数据。
问题内容: 如何使用AngularJS / karma / jasmine测试来测试API后端? 我试图创建显示我的错误的最小测试用例: echo_server.py 测试/单位/apiSpec.js 输出 问题答案: 提到的测试堆栈不适用于这种方式。由于该请求已装饰在您原始请求的顶部,因此该请求永远不会被分派。 要允许请求通过,您要么需要排除,要么指定某些网址应像这样通过: 在此处阅读文档 另外
问题内容: 我只想在不引导Angular的情况下测试服务。 我看了一些例子和教程,但是我什么也不会去。 我只有三个文件: myService.js:在这里定义AngularJS服务 test_myService.js:在这里定义服务的Jasmine测试。 specRunner.html:一个具有常规茉莉花配置的HTML文件,在其中导入了前两个其他文件以及茉莉花,Angularjs和angular-