毎日やったことを記録していく(2019/8/7 122日目)

今日やったこと

英語

TOEIC® L&R テスト 文法問題 でる1000問
  • 回答数:12問
iKnow
  • 新規:50個
  • 復習:55個
スタディサプリENGLISH
  • クイックワードクイズ:1サブセクション

開発

danime-nico-tools

コミュニティ

Kobe.rb
  • danime-nico-toolsの開発

知ったこと

tod

時間のみを取り扱うことのできるGem。 github.com

define_method

Class.newやdefine_methodを使うと外側の変数にアクセスできる doruby.jp

RSpecのexample_group

RSpecのexample_group(contextやdescribe、it等)は動的にクラスを生成している。
そのため、スコープがexample_group内に閉じている。

RSpec.describe Api::Hoge::FugaFuga do
  describe '#call' do
    context 'cache: true' do  #=> RSpec::ExampleGroups::ApiHogeFugaFuga::Call::CacheTrue
    end
  end
end

RSpecでメソッドのショートハンドを定義する

愚直にdefでメソッドを定義するのがいい。
define_methodはスコープがひと目でわかりにくいし、letはメモ化されるので複数回実行時に同じ結果が返ってきてしまう。

大量にcontextがネストするテスト

contextでサブディレクトリを切ったりテストを分割したりすることで1ファイルあたりの関心事を減らすことができる。

感想等

ruby-jpのSlack本当に学びが多くていい。
油断すると簡単に時間が溶けるけど。