Как запускать before_each в каждом тесте с помощью busted

Я запускаю свои тесты как ржавые тесты /app/init.lua. Для всех моих тестов я хочу иметь функцию before_each, которая работает во всех моих тестах. Мне удалось это сделать, но я думаю, что это очень взломано:

-- tests/app/init.lua

require 'busted.runner'()

local busted = require 'tests.setup'

busted.describe('init', function()
  describe('a test suite', function() 
     ...
  end)
end)

-- tests/setup.lua 

require 'busted.runner'()
local busted = require('busted')

local mt = getmetatable(busted)
mt.__newindex = nil
local describe = busted.describe

busted.describe = function(title, cb)
    describe(title, function()
        busted.before_each(function()
            -- can run anything here
        end)

        cb()
    end)
end

return busted

Это вызовет какие-то проблемы? Вроде нормально работает. Есть ли рекомендуемый способ сделать это?

0 ответов

Другие вопросы по тегам