这两种声音听起来都可以用Jasmine间谍来完成。
describe('my unit tests', function() { beforeEach(inject(function($state) { spyOn($state, 'go'); // or spyOn($state, 'go').andCallFake(function(state, params) { // This replaces the 'go' functionality for the duration of your test }); })); it('should test something', inject(function($state){ // Call something that eventually hits $state.go expect($state.go).toHaveBeenCalled(); expect($state.go).toHaveBeenCalledWith(expectedState, expectedParams); // ... }));});这里有一个很好的间谍的cheatsheet http://tobyho.com/2011/12/15/jasmine-spy-
cheatsheet/或实际茉莉花文档在这里。
使用间谍的好处是,除非您明确告知,否则它将避免实际执行状态转换。如果状态转换更改了URL,则它将使您在Karma中的单元测试失败。



