【发布时间】:2014-01-27 06:19:11
【问题描述】:
我正在尝试使用 mocha 在我的 web 应用上设置单元测试。我的 webapp 使用 AngularJs,由于我还是这个框架的新手,我很难设置它。
事实上,有没有办法只使用摩卡咖啡来设置它?我的意思是,是否可以在没有 Karma 或任何其他测试运行程序(也没有浏览器)的情况下设置我的单元测试?
这是我要测试的代码:
define(['angular'], function (angular) {
var module = angular.module('MyModule', []);
module.controller('MyController', ['$scope', '$window', function ($scope, $window) {
$scope.test = function () {
$window.alert('Not implemented yet.');
};
}]);
return module;
});
这是我的测试代码:
require("chai");
require('../lib/angular/angular-mocks');
describe("Unit testing example", function() {
beforeEach(angular.mock.module('MyModule'));
it('should test nothing', function() {
expect(true).to.be.true;
})
});
当我尝试执行此操作时,我收到此错误:
angular.mock = {};
^
ReferenceError: angular is not defined
感谢您的帮助!
【问题讨论】:
-
不幸的是,我很确定我需要设置 karma 或其他测试运行程序才能使其正常工作,因为如果不这样做(或通过浏览器运行它),DOM 将不存在并且它是必需的。如果这是错误的,请纠正我;)
-
我没有在回答中解决这个问题,但您的
beforeEach看起来很可疑。beforeEach将函数作为参数。 angular.mock.module('MyModule') 返回一个函数吗?beforeEach可以用的吗?
标签: angularjs unit-testing mocha.js karma-runner