首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试Vue.js滤波器

测试Vue.js滤波器
EN

Stack Overflow用户
提问于 2019-09-03 05:28:41
回答 1查看 323关注 0票数 1

我正试图为我的Vue.js过滤器编写一个测试,但是我不知道从哪里开始,特别是过滤器。

滤波器

代码语言:javascript
复制
Vue.filter('pluralize', (word: string, amount: number) => amount > 1 ? `${word}s` : word);

在Vue.js组件中的使用

代码语言:javascript
复制
{{ 'recharge' | pluralize(count) }}

因此,如果计数大于1,则Recharge变为Recharges

测试标记

这是我到目前为止所得到的关于测试标记的内容:

代码语言:javascript
复制
import {createLocalVue} from '@vue/test-utils';

describe('pluralize', () => {
  let localVue = createLocalVue();
  localVue.filter('pluralize', (word: string, amount: number) => amount > 1 ? `${word}s` : word);

  it('returns plural suffix value', () => {
    // Test comes here...
  });
});
EN

回答 1

Stack Overflow用户

发布于 2019-09-03 14:24:55

如果它是一个过滤器,那么您通常可以将它视为一个纯函数。对于给定的输入,它总是返回相同的输出。

知道了这一点,我会测试函数本身,而不尝试通过组件测试它。如果它本身就能工作,那么您就知道它将在组件中工作。

我还会利用ES模块,让我们看看它是如何工作的。

filters.js:

代码语言:javascript
复制
const pluralize = (word: string, amount: number) => amount > 1 ? `${word}s` : word);

export {
    pluralize,
    // ... other filters
};

filters.spec.js

代码语言:javascript
复制
import { pluralize } from './filters.spec.js';

describe('filters', () => {
    test('pluralize should return suffix value', () => {
        expect(pluralize('recharge', 10)).toBe('recharges');
    });
    // ... your other tests here
}

PS:如果你尝试把“仙人掌”转换成“仙人掌”,你就会得到“仙人掌”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57765531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档