我有以下lua代码:
test_me=function()
if mood == "happy" then
return true, atable
else
return false, "go away"
end
end
Luaunit测试文件名为test_mood.lua:
test_mymood=function()
luaunit.assertEquals(mymod.test_me,true)
end
当我运行此单元测试时,它会失败:
1..1
# Started on Wed May 16 20:14:05 2018
not ok 1 test_mymood
test_mood.lua:72: expected: true, actual: function: 0x97c699b3e20
# Ran 1 tests in 0.004 seconds, 0 successes, 1 failure
它正在过去,但我认为它正在恢复。 如果你能指出我正确的方向,那就太棒了。现在正在阅读他们的文档,但却没有找到我正在寻找的东西。
答案 0 :(得分:0)
不应该是:
luaunit.assertEquals(mymod.test_me(),true)
带括号的以便返回函数结果而不是函数本身?
如果测试中的消息显示实际值为函数,您可能会发现错误:
test_mood.lua:72: expected: true, actual: function: 0x97c699b3e20
------------------------------------------^
答案 1 :(得分:0)
您可以使用table.pack()
获取所有返回结果,包括nil
。
local r = table.pack(your_function())
for i = 1, r.n do
print(i, r[i]) -- one of return result maybe nil
end