我正在使用过滤器的Vue组件中为计算属性编写测试。我不需要测试过滤器本身。
我的计算属性是:
calsLeft () {
const distanceLeftMiles = (this.trip.totalDistance - (this.distance.traveled.miles * 3) * 20)
return this.$options.filters.convertToKJ(distanceLeftMiles);
}
我在计算中而不是模板中使用过滤器,只是为了避免使模板混乱。我读到this.$options.filters
可以做到这一点,尽管我不知道这是不好的做法。
我的考试是
trip: {
totalDistance: 9931
},
distance: {
traveled: {
miles: 30
}
},
$options: {
filters: () => jest.fn(() => convertToKJ()),
}
};
expect(segmentPlan.computed.timeRemaining.call(localThis)).toEqual(196);
但是运行测试时,我总是收到错误消息
TypeError: this.$options.filters.convertToKJ is not a function
我确实已将过滤器文件导入到测试文件中,如下所示:
import filters from '../../../utilities/filters.js';
我不确定为什么会失败。