Lua:
テストの作成

どのように:

軽量でありながら強力なスクリプト言語であるLuaは、組み込みのテストフレームワークを含まない。しかし、BustedやLuaUnitのようなサードパーティのライブラリを使用すると、テストが比較的簡単になります。ここでは、これら両方を使用した例を見ていきます。

Bustedを使う

Bustedは、柔軟な方法でテストを書くことができる人気のLuaテストフレームワークです。まず、LuaRocks(Luaのパッケージマネージャー)を使ってluarocks install bustedでBustedをインストールします。インストールしたら、テストを書くことができます。2つの数値を合計する関数addのためのシンプルなテストは以下のとおりです:

-- add.lua
local function add(a, b)
  return a + b
end

return add
-- add_spec.lua
local add = require('add')

describe("Add function", function()
  it("should add two numbers correctly", function()
    assert.are.equal(5, add(2, 3))
  end)
end)

テストを実行するには、ターミナルでbustedを実行します。テストが通った場合のサンプル出力は次のようになります:

●
1 success / 0 failures / 0 errors / 0 pending : 0.002 seconds

LuaUnitを使う

LuaUnitはxUnit規約に従う別のテストフレームワークで、セットアップが簡単です。LuaRocksを使ってluarocks install luaunitでLuaUnitをインストールします。上記と同様のテストをLuaUnitで書く方法は以下のとおりです:

-- add.luaはそのまま

-- test_add.lua
luaunit = require('luaunit')
local add = require('add')

function testAdd()
  luaunit.assertEquals(add(2, 3), 5)
end

os.exit(luaunit.LuaUnit.run())

このスクリプトをLuaで直接実行する(lua test_add.lua)と、次のような出力が得られます:

.
Ran 1 tests in 0.001 seconds, 1 success, 0 failures

BustedとLuaUnitの両方とも、モッキング、スパイ、非同期テストを含む様々なテストシナリオを処理するための広範囲の機能を提供しています。それらの選択は、プロジェクトの具体的なニーズと、構文および機能に関する個人的な好みによります。