Предположим, у меня есть следующий компонент:
import { mapState } from 'vuex';
import externalDependency from '...';
export default {
name: 'Foo',
computed: {
...mapState(['bar'])
},
watch: {
bar () {
externalDependency.doThing(this.bar);
}
}
}
При тестировании я хочу убедиться, что externalDependency.doThing()
вызывается с bar
(который исходит из состояния vuex) следующим образом:
it('should call externalDependency.doThing with bar', () => {
const wrapper = mount(Foo);
const spy = jest.spyOn(externalDependency, 'doThing');
wrapper.setComputed({bar: 'baz'});
expect(spy).toHaveBeenCalledWith('baz');
});
Vue test-utils имеет метод setComputed, который позволяет мне в настоящее время его протестировать, но я продолжаю получать предупреждения о том, что setComputed скоро будет удален, и я не знаю, как еще это можно проверить:
mapState
Vuex является входом для вашего компонента, вы должны высмеивать это. ИспользованиеsetComputed
не позволяет правильно протестировать ваше приложение - person Phil   schedule 02.09.2019beforeEach()
, так что вашиit()
блоки скудны. по мере роста вашего компонента вы будете делатьdispatch
и, возможно, наблюдать за самим состоянием, поэтому будет очень неудобно изменять / устанавливать эти атрибуты для каждого теста. - person ierdna   schedule 26.11.2019