簡體   English   中英

在 angular + jest 中運行單元測試時如何正確模擬庫“Twemoji”?

[英]How to correctly mock the library “Twemoji” when running unit tests in angular + jest?

我的目標是在我的 Angular 應用程序中開玩笑地運行單元測試,而不是:

error TS2304: Cannot find name 'twemoji'

Twemoji已添加到項目package.jsonangular.json文件,scripts71 部分。 它在運行和構建應用程序時運行良好,但在運行單元測試時失敗並出現上述錯誤。

我試過的

我嘗試將以下內容添加到我的src/jestGlobalMocks.ts文件中:

declare var twemoji: {
    parse(str: string, options?: { folder: string; ext: string }): string;
};
Object.defineProperty(window, 'twemoji', {
    value: {
        parse: str => str,
    },
});

src/typings.d.ts

declare var twemoji: {
    parse(str: string, options?: { folder: string; ext: string }): string;
};

但這似乎並沒有解決問題,因為我仍然收到錯誤 TS2304。 我似乎有一些不一致的行為,因為它有時似乎有效? 期待解決方案/解釋:)

想法:

  1. 嘗試 為 twemoji 安裝類型
  2. 基本上src/typings.d.ts應該可以工作。 它是否包含在編譯過程中? 它是否列在您的測試 tsconfig filesinclude部分中? 您可以檢查它運行tsc --project=tsconfig.spec.json --outDir=output --listFiles
  3. 嘗試將typings.d.ts中的代碼更改為:
    declare module 'twemoji' {
      export function parse(str: string, options?: { folder: string; ext: string }): string;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM