在单元测试中清除Angular模块

最后发布: 2013-03-18 14:22:15


问题

我正在为我的AngularJS控制器进行一些多用户测试,因为我的用户有不同的角色和设置。 第一个总是很好用,但随后的尝试永远不会发出HTTP模拟请求的尝试,因为控制器是单例。 有没有办法让我清除所有现有的控制器,甚至整个Angular模块设置并重新启动它以便我可以执行这些类型的测试?

unit-testing angularjs
回答

您是否尝试过在beforeEach函数中创建控制器? 这样,您的控制器将为每个测试重新创建。

beforeEach(inject(function ($rootScope, $controller, $location) {
    root = $rootScope;
    scope = $rootScope.$new();
    location = $location;
    controller = $controller('AccountInfoController', { $scope: scope, $location:$location, customer: customer });
}));


回答

如果你想要清除模块,请尝试此代码

angular.module('app',[]);