我的应用程序有一个功能正常的 Jest/Flow 设置。我们改用 TypeScript,我的所有测试都失败了。我将所有内容都转换为 .ts 和 .test.ts 并修复了所有错误。由于某种原因,我的都__mocks__不再使用了。(我不得不模拟一些无法自动模拟的模块)
例如,下面的代码用于在需要时模拟电子,并允许代码调用模拟对话框,以便我可以检查错误情况是否报告了错误。自从我转换为 TypeScript 以来,任何时候require ("electron")在测试中命中,它都会失败,说远程未定义。
前任)aFile.test.ts
import reportError from "../aFile.ts";
const { dialog } = require ("electron").remote;
describe ("reportError", () =>
{
test ("creates dialog", () =>
{
const title = "foo";
const message = "bar";
reportError (title, message);
expect (dialog.showErrorBox).toHaveBeenLastCalledWith (title, message);
});
});
Run Code Online (Sandbox Code Playgroud)
前任)aFile.ts
const { dialog } = require ("electron").remote;
export default function reportError (title: string, message: string)
{
dialog.showErrorBox (title, message);
}
Run Code Online (Sandbox Code Playgroud)
ex) …