駆け出し歴、1年5ヶ月
Railsで開発を行っている駆け出しエンジニアです。
RSpecでのテストを書いているのですが、自身がテストを書くときに意識している 文脈 について
共有したいと思い記事にしました。
駆け出したばかりの頃の自分へ向けた内容になっています
例とするテストコード
下記のようなテストコードがありました。
今日はこれを日本語で読んで行きたいと思います。
describe "drink?" do
subject { UniversityStudent.new(age: age).drink? }
context "19歳の場合" do
let(:age) { 19 }
it "お酒を飲んではいけないこと" do
expect(subject).to be_falsey
end
end
context "20歳の場合" do
let(:age) { 20 }
it "お酒を飲んでもいいこと" do
expect(subject).to be_truthy
end
end
end
辞書を参考に
英語は難しいので、下記の辞書を参考にしながら読んでみます
describe => 説明しよう!
subject => 本日のお題は
context => の話なんだけど
let => とさせてくれ
it => それはね
1行ずつ読み解く
まずは1行ずつ解析します。
describe "drink?" do
は お酒飲んでもいいの? について説明しよう! とします
subject { UniversityStudent.new(age: age).drink? }
は
本日のお題は age歳の大学生はお酒を飲んでもいいの? となります。
大学生に関わらず、お酒は20歳になってから ← ここ重要
どんどんいきます。
context "19歳の場合" do
は 19歳の場合の話なんだけど
let(:age) { 19 }
は ageを19歳とさせてくれ
it "お酒を飲んではいけない" do
は それはね"お酒を飲んではいけないこと"
以後、繰り返しです。
読み解いた結果
つなげて読むと
お酒飲んでもいいの? について説明しよう!
本日のお題は age歳の大学生はお酒を飲んでもいいの?
19歳の場合の話なんだけど、
ageは19とさせてくれ
それはね "お酒を飲んではいけないこと"
本日のお題は "だめだよ" となることが予想される
20歳の場合の話なんだけど、
ageは20とさせてくれ
それはね "お酒を飲んでもいいこと"
本日のお題は "いいよ" となることが予想される
今回のような実装をする場合、私は仕様を整理して、閾値を意識した上記のような物語を考えます。
そして、今回行った 英=>和
の逆の変換 和=>英
を行い、
it
context
の文章や let
の値について埋めていくのが良いのかなと考えています
まとめ
お酒は20歳になってからにしましょう
ほんとうのまとめ
すみません、本当のまとめです。
動くドキュメントとして、読んで理解できるテスト作成を行って行きたいと思います。
最後まで読んで下さり、ありがとうございました