如何在 react-i18next 中监视 "t" 函数?

How to spy a "t" function in react-i18next?

我需要测试这个场景:

t("some.key", { name: "Ash" })
{ "some": { "key": "Hi {{name}}" }

我想监视“t”函数并在测试中获取传递的参数和返回的参数。

有些像这样:

expect(spyed).toHaveBeenCaledWith("some.key", { name: "Ash" })
expect(spyed).toHaveReturnedWith("Hi Ash")

通常,对实现细节做出断言是一种不好的做法。

i18next 作为一种特殊模式,称为 cimode,这将使您的 t 函数成为 return 键本身。这允许您的测试对您的操作结果做出断言(检查元素是否包含键值)。