Ответ 1
Оба эти звучат как вещи, которые вы можете сделать с шпионами Жасмин.
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);
// ...
}));
});
Здесь есть хороший шпионский обман http://tobyho.com/2011/12/15/jasmine-spy-cheatsheet/ или фактические документы Jasmine .
Хорошая вещь об использовании шпионов заключается в том, что она позволит вам избежать фактического выполнения перехода состояния, если вы явно не указали это. Переход состояния приведет к отказу вашего unit test в Карме, если он изменит URL.