i18nextを国際化に使用するReactコンポーネントをテストしています。Typescript、Jest、i18next:Reactコンポーネントのテキストが見えません
コンポーネント:
import * as React from "react";
import { t } from "i18next";
export function Hello(_props) {
return <div className="widget-header">
{t("Hello, world!")}
</div>;
}
テスト:
import * as React from "react";
import { render } from "enzyme";
import { Hello } from "./hello";
describe("<Hello />",() => {
it("says hi",() => {
let hi = render(<Hello />);
// FAILS!
// Expected "" to contain "Hello"
expect(hi.text()).toContain("Hello");
});
})
私の疑いが冗談ではなくundefined
を返すようにi18next.t()
をスタブされていることですが、私はそれがわからないよ "こんにちは、世界!" 。
私はunmock("i18next")
に運が無かった。
Jestのi18nextコンポーネントのテストを書くにはどうすればよいですか?
更新:私はコンパイラとしてTypescriptを使用していました。 Typescriptにはローダーを使用してhoisting issueがあるようです(ES6ホイストのインポート、jest.unmock
はありません - バベルユーザーはこれを処理するプラグインを持っています)。
あなたが 'にconsole.log(T(「こんにちは、世界!」))'あなたのファイルを追加することができます問題が実際に 'i18next'に関連しているかどうかを確認してください。 –