在我的Vue Quasar组件中,我有一个这样的徽章:
<q-badge
:color="green"
text-color="white"
:label="`${value.toFixed(2)}%`"
/>
脚本如下:
<script setup>
const props = defineProps({
value: Number
})
</script>
我想测试我的标签的3个不同的值
我的测试是这样的:
let wrapper
const values_for_badge = [10, 50, 90]
const componentBadge = (props) =>{
wrapper = mount(Badge, {
props:{
...props
}
});
};
describe('Badge with injected values', () =>{
values_for_badge.forEach(value => {
beforeEach(() => {
componentBadge({value:value})
});
it(`The right text label for value ${value}`, () => {
expect(wrapper.text()).toBe(`${value.toFixed(2)}%`)
}
})
})
当我运行它时,我有三个测试。一个是绿色,但2个是红色的,因为预期的结果与我所拥有的不同,例如,我期望10.00%或50.00%,但我总是90.00%,因此测试中的值总是数组values_for_badge中的最后一个,但在测试的描述中,我从循环forEach中获得了正确的值。我的应用程序中的组件运行良好,并具有正确的标签。
如何修改此组件的测试?谢谢你的帮助
1条答案
按热度按时间jv4diomz1#
我试着这样解决这个问题:
通常我在这个套件中有更多的测试,所以我想在这个例子中放置beforeEach。