我正在测试组件是否抛出错误,测试是否按预期通过,而报告程序仍输出抛出的错误。 有办法防止这种情况吗?我不想在测试输出中看到预期的错误。
应用程序是使用Vue CLI生成的,我使用与npm run test:unit
相对应的vue-cli-service test:unit
运行测试。
我尝试手动运行vue-cli-service,并根据-q
链接的docs传递vue-cli-service test:unit --help
和其他报告程序,它们似乎根本不起作用(没有安静的运行) ,没有其他记者)。
我正在使用摩卡咖啡/柴。
我组件的脚本
export default {
props: {
foo: Array,
},
mounted() {
this.bar();
},
methods: {
bar() {
if(this.foo.length === 0) {
throw new Error("Array is empty");
}
}
}
}
测试
describe('Component'), () => {
let localVue;
beforeEach(() => {
localVue = createLocalVue();
localVue.use(Vuetify);
});
it('throws an error if array is empty', () => {
const items = [];
const params = {
locaVue,
propsData: { foo: items },
};
const msg = "Array is empty";
// shows error in console both with this statement
expect(shallowMount.bind(shallowMount, Component, params)).to.throw(msg);
// and this statement
expect(() => shallowMount(Component, params)).to.throw(msg);
});
});
答案 0 :(得分:0)
我以相同的方式,在测试输出中不喜欢一堆杂音。我要做的是暂时重新分配console.error
,然后将其重新分配。试试:
// store a reference to the original function
const originalConsoleError = console.error;
// reassign to a no-op
console.error = () => {};
/**
* run tests
*/
// restore to aid in debugging further tests
console.error = originalConsoleError;