経緯
業務でRubyを使う案件があり、アサインするか…?しないか…?
するかしないかは、あなた次第です。
のような感じだったので触ってみることにした。
やったこと
最初はRailsチュートリアルでもやろうかと思っていたけれども、
弊社に居るRubyエンジニアの方曰く
「とりあえずは生のRubyに触る方が良いと思う」
との事だったので素直にRubyを触ることにした。
(Rubyを触るだと変な感じがするけどそんな感じ)
とりあえず目指すところとして、
PHPでいえばPHPUnitだけcomposer installされていてテストができる
状態を目指すことにした。
src/ Hoge.php tests/ HogeTest.php vendor/ // 割愛 composer.json phpunit.xml
環境
OS : macOS Catalina
Ruby : 2.7.0 (anyenvが便利だった)
参考資料
構築
ほぼほぼQiitaの丸写しをしていく。
作業ディレクトリで以下コマンドを叩く。
> bundle init
bundle initをするとGemfileが作成される。
bundleがcompsoerみたいなもん?
Gemfileがcomposer.json的な?
rspecをインストールするためGemfileに以下を記述。
gem "rspec", ">= 3.0.0"
何故rspecなのかと言うとTDD本で見たことがあったし有名っぽいから。
> bundle install
すかさずinstallする。ますますcomposerっぽい。
ディレクトリができるのか?と思ったけどできなかった。
もう一声必要らしい。
> bundle exec rspec --init
rspec/ examples.txt spec_helper.rb Gemfile Gemfile.lock
spec_helper.rbのコメントアウトされている部分(- =begin,- =end
)を外し、準備完了である。
よーし!
正直に言ってここまでのことはほぼほぼ理解していない。
……とにかくテストを書きたかった。
class Hello def message "Hello!" end end
defがなんか…function的な…?
messageがfunction名で…?
まいったな…
いったいどこに迷い込んでしまったんだ…
焦るんじゃない
俺はテストが書きたいだけなんだ
require_relative '../src/Hello' RSpec.describe Hello do it "message return Hello!" do expect(Hello.new.message).to eq "Hello!" end end
…?
あ…しまった
テストはここでおわりか…
ということでテストを起動してみる。
> bundle exec rspec
ようやくテストが出来た。
正直に言ってほぼほぼ理解できていないが、気が向いたらまたやろう。
向かなければ、PHPに詰まって憤死しそうな時にでもやればいい。
そう思った。
俺は得体の知れない奇妙な満足感を味わっていた。