【问题标题】:How to use Quasar date.FormatDate in Jest如何在 Jest 中使用 Quasar date.FormatDate
【发布时间】:2021-08-24 12:48:18
【问题描述】:

我有这个功能:

import {date as DateUtils} from 'quasar'

    export class FormatDate {
      static dateTime(date: Date) : string {
            return dateUtils.formatDate(date, "DD.MM.YYYY HH:mm:ss")
          }
    }

我正在尝试用 Jest 进行测试,例如:

    it('Should get the correct formatted date', () => {
        const date = DateUtils.buildDate({year: 2021, month: 11, date: 28, hours: 12, minutes: 11})
        expect(FormatDate.dateTime(date)).toEqual('28.11.2021 12:11:00')
    })

但是,当我运行测试时,它给了我这个错误:

TypeError: Cannot read property 'date' of undefined

    at Object.formatDate (/node_modules/quasar/dist/quasar.cjs.prod.js:6:132667)
    at Function.dateTime (/src/components/FormatDate.ts:6:26)
    at Object.<anonymous> (/test/jest/__tests__/FormatDate.spec.ts:19:34)
    at Object.asyncJestTest (/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)
    at /node_modules/jest-jasmine2/build/queueRunner.js:45:12
    at new Promise (<anonymous>)
    at mapper (/node_modules/jest-jasmine2/build/queueRunner.js:28:19)
    at /node_modules/jest-jasmine2/build/queueRunner.js:75:41
    at processTicksAndRejections (internal/process/task_queues.js:95:5)

有谁知道如何解决这个问题?

【问题讨论】:

  • 请提供完整的错误堆栈。哪一行会抛出这个错误?
  • 这一行在 dateUtils.formatDate 处抛出。我添加了错误堆栈

标签: typescript unit-testing testing quasar-framework ts-jest


【解决方案1】:

这通常可以通过在本地 vue 实例中配置 quasar 来解决:

import { Quasar } from "quasar";
import langEn from "quasar/lang/en";

const localVue = createLocalVue();
localVue.use(Quasar, {}, { lang: langEn });

quasar project 中讨论了类似的问题。

Buuuut,我很好奇是否有人会有其他解决方案。

因为我自己也有类似的问题,但在另一种情况下。

通过一个糟糕的架构(请不要问为什么),我们的项目在 vue 组件上下文之外使用日期助手。例如,作为简单功能助手的一部分。喜欢:

const defaultDateFormat = (date: Date): string => formatDate(date, "whatever-pattern");

对此进行测试会导致作者描述的相同问题。

之前描述的解决方案在这里不适用。

简而言之:

  • 在 vue 组件之外使用类星体日期格式化程序
  • 在这个助手上运行一个笑话测试
  • 失败

所以,如果有人知道我的耳朵是开放的。

【讨论】:

    猜你喜欢
    • 2019-03-17
    • 2020-12-30
    • 2018-09-11
    • 2021-04-24
    • 2022-07-01
    • 2022-01-26
    • 2014-09-03
    • 2020-04-07
    • 2015-05-06
    相关资源
    最近更新 更多