# pair-1a レビュー 2021/03/11 ###### tags: `ペアレビュー` ## E2E - ビューのテストハードル高そう... - cypressすごい楽だった - ? puppeteerとcypressとの違い - テストのレイヤーが違う? - cypressはテスト用全部入り・puppeteerはブラウザ操作用 ? - 実際の運用どうしてるんだろうか? - QAチームがある場合は、E2EはQAチームが担当してるのかな? - ブラウザ全部を検査しようとすると大変? - BtoBむけのSaaS - ブラウザのサポート範囲を狭めて対応している - jestとmocha競合しなかったか? - しなかった。CRAのおかげ? - 単体・統合の分類 - 単体のコンポーネントをテストするので単体? - ST/VRTを別にして4つに分けるの良さそう - 統合 -> コントローラー - モックすると単体・モックしないと統合 ## TDD ### nakano - 30個の配列 - `Array().keys()` :+1: - エラーになる関数 - never -> エラーで何も返ってこない - Error -> return Error される意味になる - フロントはTDD向いてなさそう - storybookがその立ち位置? (個別に作って組み込んでいくイメージ) - TDDとRailsの思想の違い - Rspec -> 振る舞いをテストする - TDD -> AAA - BDD -> Given When Then - `~をしたとき ~する` 書き方 (RSpec) - 大きくなった時にも何のテストかわかりやすい - it( `is~~` ) の書き方 -> 結果を書く書き方 - RSpec: コンテキスト - 読む人の意味合い (状態を表す) - ガード節は1行のif文の方が良さそう - forEachは悪? - 結果の配列を使いたい時 map - 外部の操作したい時 forEach - フロントエンドでtddどうやっているのか?(質問したい) - ロジック部分だけか? ### furukawa - 割り算の精度どうしてるんだろう? (ライブラリを使う?) `bignumber.js` `math.js` - 都度四捨五入? - reduceの場合 - 丸め誤差が大きくなりそう - 計算後のreturn 時に四捨五入? - 受け取る側で四捨五入? - そもそもNumber型は小数点以下約17桁の精度しか保持できない。浮動小数点ってやつ - 任意の長さの配列 - https://qiita.com/RyutaKojima/items/168632d4980e65a285f3 - gts便利そう - gitignoreの生成 - gitignore.io ### ishihara - 課題はCLIから受け取ることを想定している? - 文字列チェックの意味 - TDDの事例 - https://github.com/kooooichi24/praha-challenge-pair-1a/pull/28#discussion_r591636070 - 歴史が古い (mixiくらい) - エラーの定義場所 - 独自エラーであればエラーの文言を集中管理するクラスを作る - Railsは独自エラーを吐ける - SNSAccessError extends Errorみたいな、、 - 捨てる前提の場合 TDDは向かなさそう - 境界値の値のテスト書いているの良さそう :-1: - 1000を返すテストはどちらに入る?(質問したい) - describeが抽象, itが具体だとしたら 正常系の境界値の方じゃないかな?