Lua:
테스트 작성하기

어떻게:

Lua는 가벼우면서도 강력한 스크립팅 언어이지만, 내장된 테스트 프레임워크를 포함하고 있지 않습니다. 그러나, Busted 및 LuaUnit과 같은 타사 라이브러리는 테스트를 비교적 간단하게 만듭니다. 여기서는 둘 모두를 사용하여 예제를 살펴보겠습니다.

Busted 사용하기

Busted는 유연한 방식으로 테스트를 작성할 수 있는 인기 있는 Lua 테스트 프레임워크입니다. 우선, LuaRocks(Lua의 패키지 관리자)를 통해 luarocks install busted로 Busted를 설치합니다. 설치가 완료되면, 테스트를 작성할 수 있습니다. 두 수를 더하는 함수 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 모두 모킹, 스파이, 비동기 테스트를 포함한 다양한 테스트 시나리오를 처리할 수 있는 광범위한 기능을 제공합니다. 두 프레임워크 중 선택은 프로젝트의 구체적인 요구사항과 구문 및 기능에 대한 개인적인 선호에 달려 있습니다.