そこから何が呼び出されようとしたのかを教えてくれる簡単なモックテーブルを作成したいと思います。
私の最初の試みは:
local function capture(table, key)
print("call to " .. tostring(table) .. " with key " .. tostring(key))
return key
end
function getMock()
mock = {}
mt = { __index = capture }
setmetatable(mock, mt)
return mock
end
今これをと呼んでいます
t = getMock()
t.foo
私が期待したように印刷します:
call to table: 002BB188 with key foo
しかし、電話をかけようとしています:
t.foo("bar")
与える:
call to table: 002BB188 with key foo
lua: test.lua:6: attempt to call field 'foo' (a string value)
今私は2つの質問があります:
- 例外を回避する方法、すなわち。私は何が間違っているのですか?
- メソッド引数(この場合は「bar」)もキャッチする方法は?