概要
busted は Lua スクリプトをテストするためのテストフレームワークです
インストールから簡単な使い方まで紹介したいと思います
環境
- CentOS 6.7 64bit Final
- Lua 5.1.4
- LuaRocks 2.1.2
- busted 2.0.rc11-0
busted のインストール
luarocks を使ってインストールできます
luarocks のインストールはこちらを参照してください
- luarocks install busted
依存するライブラリが結構ありました
busted
2.0.rc11-0 (installed) - /usr/lib/luarocks/rocks
dkjson
2.5-2 (installed) - /usr/lib/luarocks/rocks
lua-term
0.3-1 (installed) - /usr/lib/luarocks/rocks
lua_cliargs
2.5-5 (installed) - /usr/lib/luarocks/rocks
luafilesystem
1.6.3-1 (installed) - /usr/lib/luarocks/rocks
luasocket
3.0rc1-2 (installed) - /usr/lib/luarocks/rocks
luassert
1.7.9-0 (installed) - /usr/lib/luarocks/rocks
mediator_lua
1.1.2-0 (installed) - /usr/lib/luarocks/rocks
penlight
1.3.2-2 (installed) - /usr/lib/luarocks/rocks
say
1.3-1 (installed) - /usr/lib/luarocks/rocks
サンプルテストコードの作成
今回は function を定義している別の Lua スクリプトを busted でテストしてみたいと思います
- sample_function.lua
function sum(a, b)
return a + b
end
とりあえず引数の値を足しあわせて返却する簡単なメソッドを定義しておきます
これをテストするテストコードを作成します
- sample_busted.lua
require 'busted.runner'()
require("sample_function")
describe("sum method test", function()
it("is three", function()
local val = sum(1, 2)
assert.are.equal(val, 3)
end)
end)
describe("sum method test2", function()
it("is occured error", function()
local val = sum(1, 2)
assert.are.equal(val, 4)
end)
it("is not three", function()
local val = sum(1, 2)
assert.are_not.equal(val, 4)
end)
end)
テスト冒頭で require 'busted.runner'()
することで busted のテストコードであることを明示します
次にテストしたい Lua スクリプトを require します
あとはテストを記載していきます
基本形は describe -> it -> assert でテストを記載していきます
describe はテストの説明を記載するためのメソッドで階層を持たせることもできます
describe 配下に it を定義します
具体的なテストコードは it 配下に記載します
1 つの describe 内に複数の it を記述することも可能です
実行してみる
では実行してみましょう
今回は作成した 2 つの Lua スクリプトは同一ディレクトリに存在することを想定しています
- busted sample_busted.lua
結果は以下のようになると思います
2 つ目のテストはあえて失敗するテストにしています
●?●
2 successes / 1 failure / 0 errors / 0 pending : 0.000965 seconds
Failure → sample_busted.lua @ 13
sum method test2 is occured error
sample_busted.lua:15: Expected objects to be equal.
Passed in:
(number) 4
Expected:
(number) 3
サンプルの結果だと色はないですが、失敗か成功かを丸と色で表示してくれます
成功した場合は緑になります
失敗したテストは結果と期待値を表示してくれます
あとはテストにかかった時間を表示してくれます
0 件のコメント:
コメントを投稿