---
# System prepended metadata

title: pair-1a レビュー 2021/03/11
tags: [ペアレビュー]

---

# 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が具体だとしたら 正常系の境界値の方じゃないかな？
