Я тестирую компонент React, который использует i18next для интернационализации.
Компонент:
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");
});
})
Я подозреваю, что Jest заглушает i18next.t()
, чтобы вернуть undefined
, а не "Hello, world!", но я в этом не уверен.
Я пытался unmock("i18next")
безуспешно.
Как написать тесты для компонентов i18next в Jest?
ОБНОВЛЕНИЕ: я использовал Typescript в качестве компилятора. Похоже, что существует проблема с подъемом загрузчика, который я использую для Typescript (ES6 поднимает импортирует, jest.unmock
нет — у пользователей Babel есть плагин для этого).
console.log(t("Hello, world!"))
свой файл, просто чтобы проверить, действительно ли проблема связана сi18next
- person Andreas Köberle   schedule 21.04.2017