gpt4 book ai didi

unit-testing - 在 Busted 测试期间模拟现有 lua 文件中的方法

转载 作者:行者123 更新时间:2023-12-05 04:10:31 28 4
gpt4 key购买 nike

我想使用 Busted 为现有的 lua 文件编写单元测试。我想在测试期间换出一些方法,以便文件使用模拟/ stub 方法而不是真实方法运行(否则它将失败)。文件调用的一些方法是从其他 lua 库中提取的,我也想模拟这些。

如何实现?

感谢任何帮助,谢谢。

最佳答案

我认为您不能轻易替换本地函数,但替换导出函数或全局函数很简单。

例如,我需要通过 rest.http 库中的 http:new().request(...) 模拟一个 HTTP 调用。这是我在测试中所做的:

local http = require 'resty.http'
http.new = function()
return {
request = function(self, args)
-- ... some mock implementation
end
}
end

这种方法适用于任何导出的函数。例如,替换库 bar 中的函数 foo

local bar = require 'bar'
bar.foo = myMockImpl

改变全局函数或变量可以通过覆盖_G来实现,例如,这将改变全局函数或变量foo:

_G.foo = ...

Busted支持自动恢复环境。在 documentation 中搜索“绝缘” .

关于unit-testing - 在 Busted 测试期间模拟现有 lua 文件中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44393120/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com