В настоящее время я использую sinon.js для набивки. Можно заглушить и шпионить по методам, но не свойствам, использующим библиотеку из того, что я мог видеть.SinonJS - Значение свойства перед вызовом Stub
В следующем примере, будет ли способ, чтобы проверить, что state.searchText
был установлен state.suggestion
перед темsubmit
называется?
// currently using angular but applies equally to vanilla js
$scope.searchSuggestion = function() {
this.state.searchText = this.state.suggestion;
this.submit();
};
идеальный код тестирования:
it('should set the searchText to be the suggestion', function(){
// arrange
sinon.stub(scope, 'submit');
scope.state.searchText = 'old value';
scope.state.suggestion = 'new value';
// act
scope.searchSuggestion();
// assert
expect(scope.submit.called).to.be(true)
// ~not sure how to see if searchText was set first
});
Не знаете, почему вы хотите использовать 'sinon' с' angularjs'. AngularJS уже стал тестируемой базой, и он делает простой тест. В вашем случае в конце или сразу после того, как вы вызываете 'searchSuggestion()' добавьте строку 'expect (scope.state.searchText) .toBe (scope.state.suggestion)', чтобы вы могли видеть, имеет ли 'searchText' новое значение или нет. Надеюсь, поможет. – themyth92
Да, проверка того, изменилась ли она, не является проблемой. Я хочу проверить, что оно изменилось * до того, как вызывается 'submit'. Sinon.js - это стержень. Крайне полезно использовать его в комбинации с AngularJS. Использование в этом случае позволяет проверить, что 'submit' был вызван' expect (scope.submit.called) .to.be (true) ' – alexreardon