Closed2
フルTypeScriptでノーコードアプリを作っている話(#4 テスト)
4-1. global Fileのテスト
const readResult = await file.stream().getReader().read();
このmockを定義するのがかなりめんどくさかったので、
別ファイルに切り出した
readFile.ts
export const readFile = async (file: File) =>
await file.stream().getReader().read();
import * as readFileMock from "@features/appFileImport/client/readFile";
jest.spyOn(readFileMock, "readFile").mockResolvedValue({
value: new Uint8Array([0x74, 0x65]),
done: false,
});
だいぶ楽になる
4-2. ロジックと親ファイル
ここのロジックを繋げる親ファイルにロジックは持たない方がいい
親ファイルのテストは、基本的にここのロジックに期待通り引数を渡しているだけかのテストができる方が、網羅しやすい
const readResult = await readFile(file);
const csv = decodeCsv(readResult, encodingTo, encodingFrom, encodingType);
const rows = separateRows(csv, splitSeparator, headerRows, footerRows);
// 上はモックにすればいい、下はテストしずらい
+ const data = rows.map((r) =>
+ r.split(splitter).map((s) => s.replaceAll(quotation, "")),
+ );
このスクラップは3ヶ月前にクローズされました