我有一个返回字符串数组的 vue 函数
1 selectStyles (): string[] {
2 const baseStyles = ['selected-label', 'px-4']
3 const placeholderStyle = this.internalValue?.length === 0 ? 'text-gray-400' : 'text-black'
4
5 return [...baseStyles, placeholderStyle]
6 },
我有三个开玩笑的测试用例测试
- if
internalValue
有一个值,因此它的长度是 !0 - if
internalValue
是一个空数组,因此它的长度是 0 - 如果
internalValue
未定义,undefined === 0
则为假,因此分配了第二个条件
然而 codecov 说第 3 行是部分命中?
知道为什么吗?
我阅读了这篇关于 python 中的 if 语句及其结果的精彩回复,但我认为它不能回答我的问题。
这是我的测试用例:
it('selectStyles', () => {
expect(
Select.computed.selectStyles.call({
internalValue: []
})
).toEqual(['selected-label', 'px-4', 'text-gray-400'])
expect(
Select.computed.selectStyles.call({
internalValue: ['some opt selected']
})
).toEqual(['selected-label', 'px-4', 'text-black'])
expect(
Select.computed.selectStyles.call({
internalValue: undefined, // unlikely
})
).toEqual(['selected-label', 'px-4', 'text-black'])
})
蒂亚!