내 응용 프로그램에 대한 Jest/Flow 설정이 작동했습니다. 우리는 TypeScript로 전환했고 모든 테스트가 중단되었습니다. 나는 모든 것을 .ts와 .test.ts로 바꾸고 모든 버그를 고쳤다. 어떤 이유로 든 내 __mocks__
은 더 이상 사용되지 않습니다. (나는 automock에 실패한 모듈을 모의해야만했다.)jest typescript는 node_modules에 대해 __mocks__을 사용하지 않습니다.
예를 들어, 아래의 코드는 필요시 언제든지 전자 모조를 사용하여 오류가보고 된 오류를 확인할 수 있도록 코드가 조롱 된 대화 상자를 호출하도록 허용했다. . 내가 TypeScript로 변환했기 때문에 require ("electron")
이 테스트에서 명중 될 때마다 remote가 정의되지 않았다고 말하는 것이 실패합니다.
예) 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);
});
});
예) aFile.ts
const { dialog } = require ("electron").remote;
export default function reportError (title: string, message: string)
{
dialog.showErrorBox (title, message);
}
예) node_modules의 __mocks__/electron.js
(형제)
module.exports = { remote: { dialog: { showErrorBox: jest.fn() } } };
내가 확실히 알고
모의은 아니다 사용중인, becau
jest.mock ("electron",() => { return { remote: { dialog: { showErrorBox: jest.fn() } } } });
왜 __mocks__
을 찾는 타이프 라이터되지 않습니다 내가 어떤 실패 .test.ts 파일에 다음을 추가 할 때 자체, 그것은 통과하기 시작? mocks.js
을 만들
:
가 package.json에jest.mock ("electron",() =>
{
return { remote: { dialog: { showErrorBox: jest.fn() } } };
});
는 농담 섹션이 추가 (당신의 mocks.js가 어디 있는지 경로) :
필자는'require ('electron')'가 jest 파서에서 가려져 있고 jest가 가져 오기를 들었을 때 감지되지 않는다고 생각합니다. 이것은 아마도 농담의 근원지에 대한 깊은 잠수가 필요할 것입니다. –
동일한 문제가 있습니다. ( – Jonathan
내일 해결할 수 있습니다. – austinrulezd00d