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ヶ月前にクローズされました