我有一个注入beforeEach的服务:
beforeEach(inject(function($rootScope, $state, $injector, $controller, MyService) {
var state = $state;
scope = $rootScope.$new();
myService = MyService;
ctrl = $controller('MainCtrl', {$state: state, MyService: myService});
}));
我用“它”描述了一些测试:
it('test1', function() {
var data = ["test"];
ctrl.extract_data(data);
expect(myService.get_data()).toEquals("test");
});
现在我的问题是我在测试之间有一个共享变量(可变数据),如果我用其他数据运行测试(例如var data = [“a”,“b”]),那么变量就是在myService中共享将包含a,b和test(从之前的测试中检索)。有没有办法在每次运行测试时“重置”服务内容?
答案 0 :(得分:0)
我不知道重置它的方法,但每个it
块都不与其他it
块共享任何内容。您可以在每个it
块中注入一个新控制器。
it('test1', function() {
var ctrl;
var data = ["test"];
inject(function($controller) {
ctrl = $controller('MainCtrl', {$state: state, MyService: myService}
})
ctrl.extract_data(data);
expect(myService.get_data()).toEquals("test");
});