【Elixir】ESpec動いた!
漸く動いた(^^)/~
使い方をググって見つかったコードはこれ。
GitHub - antonmi/espec: Elixir Behaviour Driven Development
defmodule SyntaxExampleSpec do use ESpec it do: expect true |> to(be_true()) it do: expect(1 + 1).to eq(2) it do: (1..3) |> should(have 2) end
悩んだところは次の2点。
- テスト対象の関数呼び出しってどれ?
- テスト対象のモジュールをimport? include? require 等なにかしなくていいの?
mix と ESpec な事例はググっても他に見つからなかった。
ので。Spec系の元祖?な RSpec についてググった。
はじめてのRSpec - まずテスト書いてからコード書くシンプルなチュートリアル - Qiita
使えるRSpec入門・その1「RSpecの基本的な構文や便利な機能を理解する」 - Qiita
it '13歳以上の場合、漢字で答えること' do user = User.new(name: 'たろう', age: 13) expect(user.greet).to eq '僕はたろうです。' end
この記述から、expect(テスト対象関数) .to eq(期待値)という書式であることが分かった。
一方、spec/sample01_spec.exs から lib/sample01.ex 内に定義されている Sample01 モジュールを利用するための書式はググってもみつからなかった。
なので、当てずっぽうに import キーワードを使ってみたら当たりだった。
defmodule Sample01Spec do
use ESpec
import Sample01# it do: expect true |> to(be_true())
# it do: expect(1 + 1).to eq(2)
# it do: (1..3) |> should(have 2)# it do: expect(ret2).to eq(2)
it do: expect(sumlist([1,2,3])).to eq(6)
it do: expect(sumlist([2,4,6])).to eq(12)
it do: expect(sumlist([1,4])).to eq(5)
end
これで Elixir で BDD できる。
次は Scala で BDD だ!( sbt + Spec2 )