私のアプリケーションにJest/Flow設定が機能していました。私たちはTypeScriptに切り替え、すべてのテストが壊れました。私はすべてを.tsと.test.tsに変換し、すべてのバグを修正しました。なんらかの理由で、私の__mocks__
はもう使用されません。 (オートロックに失敗したモジュールを模擬しなければならなかった)jest typescriptはnode_modulesに__mocks__を使用していません
たとえば、以下のコードは、 。私はTypeScriptに変換したので、require ("electron")
がテストでヒットしたときはいつでも、remoteは定義されていません。
EX)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);
});
});
EX)aFile.ts
const { dialog } = require ("electron").remote;
export default function reportError (title: string, message: string)
{
dialog.showErrorBox (title, message);
}
EX)__mocks__/electron.js
node_modulesの(兄弟)
module.exports = { remote: { dialog: { showErrorBox: jest.fn() } } };
私は確かにモックではありません知っています使用されて、becau
jest.mock ("electron",() => { return { remote: { dialog: { showErrorBox: jest.fn() } } } });
なぜ__mocks__
を見つける活字されていない:私はどんな失敗.test.tsファイルに以下を追加する場合、SEは、それが合格を開始しますか?
私の推測では、 'require( 'electron')'は冗談パーサから隠されていて、冗談がインポートを持ち上げたときには検出されません。これはおそらく冗談のソースに深い潜入を必要とするでしょう。 –
同じ問題がある:( – Jonathan
私はこれを修正することができました明日の対応策を投稿します – austinrulezd00d