# 2021-03-04 第5回メンターセッション ## 項目 ### PrAha Challengeの進め方について 早いペアに合わせていいと考えている 質問者が遅いペアの方に簡単に教えるレベルまでは理解しておくと良さそう 議論の密度としてはペアが最も高く、チームはそこまで高密度でなくて良い ### JestでClassのコンストラクタをモックする方法 ```typescript= export class SomeClass { public constructor() { throw new Error("dont call this construtor!"); } } // ----------------------------------------- // import { mocked } from 'ts-jest/utils'; jest.mock('../util/some-class') const SomeClassMocked = mocked(SomeClass); describe("some-class", () => { beforeEach(() => { jest.clearAllMocks() }) it("モックされたエラーコンストラクタを入れてみる", () => { // memo: ここでmockの返り値を設定する SomeClassMocked.mockImplementation(() => { throw new Error("mocked error!"); }); try { new SomeClass(); } catch (error) { expect(error).toEqual(new Error("mocked error!")); } }); it("正常なコンストラクタをモックしてみる", () => { // memo: ここでmockの返り値を設定する。今度は{someValue: 'hoge'}を返すようにしてみた SomeClassMocked.mockImplementation(() => { return { someValue: "hoge", }; }); const newClass = new SomeClass(); expect(newClass).toEqual({ someValue: "hoge" }); expect(SomeClassMocked).toHaveBeenCalledTimes(1) }); }); ``` ### Jestでコマンドライン引数を自由に設定する方法 コマンドライン引数が受け取れていることをテストするのは、nodeのライブラリをテストしていることに当たる アプリケーションのテストとして書くべきは、コマンドライン引数を受け取れていることではなく、コマンドライン引数を受け取ってから正常に動いているかをみるべき ### TypeScriptのenumとunionについて 基本unionでどうしてもダメならenumでいいのではなかろうか enumを選ぶべき理由がない→消去法でunionか PrAha社内でも意見が割れていたが、社内で一番TSに詳しい人はunion推しだった 公式もunionを推している TSの思想とenumはあっていない unionのデメリット 定義を変更した時の置き換えが面倒(将来的にはIDEが進化してなんとかなりそうな気もする) enumのデメリット JSにトランスパイルしたときにでかくなるらしい 型安全じゃない。定義していない数値も渡せるので危険。 ###### tags: `Team-2`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up