问题标签 [meck]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
erlang - Meck 对多个模拟模块的行为异常
我有以下模块
并对上述代码进行以下测试
当我运行测试时,我得到以下错误(为简洁起见,下面仅粘贴了部分错误)。查看下面的错误,我感觉文件模块没有被模拟(或者当我使用 设置另一个模拟时文件模块的模拟被覆盖meck:new(lhttpc)
。这里可能出了什么问题?
erlang - 如何在我的 Erlang 项目中安装 meck?
我创建了我的第一个 Erlang 项目。这是一个简单的密码游戏。我试图不惜一切代价避免 OTP,因为它看起来真的很混乱,而且我的导师认为没有必要使用它。
我有三个文件夹: ebin src test
我使用 makefile 编译所有代码并运行测试。
生活是美好的,直到今晚......
为了模拟我的游戏输入(和输出?),建议我使用 Meck,但我很难将它集成到我的项目中。
我尝试手动安装。我做了一个 Meck 的 git 克隆。我可以“cd”到 Meck 目录中的 eBin 文件夹并编译,运行所有系统测试,并执行基本命令“meck:new(dog)”。惊人的!
现在我需要让 Meck 处理我的项目...我在 Github Meck 自述文件中阅读了这一行:“如果您想安装自己构建的 meck 版本,请将 ebin 目录添加到您的 Erlang 代码路径或将 meck 文件夹移动到您的发布文件夹,并确保该文件夹在您的 ERL_LIBS 环境变量中。”
但我不知道如何将 ebin 目录添加到我的 Erland 代码路径中,我没有发布文件夹(我认为这是一个钢筋?)而且我不知道如何添加 ERL_LIBS 环境变量. 所以我被困住了。
这是我尝试过的:要将 ebin 目录添加到我的代码路径中,我在我的 makefile 中执行了此操作(我的桌面上现在有 meck 目录):
我将 ERL_LIBS 添加到我的 .bash_profile 中,如下所示:
我还尝试安装 Agner 并在安装时出错:
任何人都可以帮忙吗?我觉得有几个选项可供我尝试,但没有一个有效。
更新:
这是阅读@d11wtq 的解决方案后我的make 文件的样子:
最终更新:
根据提示,这是我现在可以使用的最终生成文件。
erlang - 如何使用 Meck 在 Erlang 中模拟对象?
好的,我正在使用 Meck,但我迷路了。我的第一语言(我已经写了大约 7 个月了)是 Ruby,所以我似乎还无法将我的大脑包裹在 Meck 嘲笑上。我确实得到了 Ruby 的嘲笑。希望有人可以帮助我。另外,我只写了一周的 Erlang。
更新的代码(但模拟仍然不起作用)......
我有一个 Erlang console_io提示器模块,如下所示:
我的测试现在看起来像这样:
我得到的错误是:
我想在我的测试中模拟(存根?)gets函数,这样gets将返回“aaaa”,然后当我在get_guess()上断言时它应该等于[“a”,“a”,“a”,“a” ]。
我该怎么做呢?
erlang - 将 meck 与 foreach 一起使用的正确方法
我正在使用 meck 测试我的 gen_server mymodule
。特别是我使用 meck按照此处httpc
提供的说明进行模拟。
这是我从测试中提取的一些代码:
使用此代码,我可以运行测试,但仍有两件事我无法理解:
1)在结果中我得到类似的东西:
是否有可能每次测试只得到一条而不是两条?
2) 如何为每个测试添加口语描述?
erlang - 为 gen_tcp 函数编写 Meck 测试用例
这是一个由 Erlang 编写的简单 IRC bot 模块: IRC Bot
有人可以帮我用 MECK 编写函数 connect 和 parse_line 的测试用例吗
非常感谢,我已经知道如何使用 MECK 编写一些关于输入/输出、列表的简单 Erlang 测试用例……但是这个 IRC 机器人似乎超出了我目前的能力。
erlang - Meck 不允许我的进程进行垃圾收集
我使用 Meck 来模拟我拥有的一些外部服务的行为,纯粹是为了负载测试和分析我的系统,但这给我带来了一些问题。基本上我有很多工作进程正在生成,如果没有任何调用它们,然后在 10 秒后超时,但是当我让我覆盖对我的外部进程的调用时,它们似乎超时并按预期退出,但它们永远不会被垃圾收集,导致随着更多工人的产生,我的应用程序内存使用率不断上升
erlang - 使用 meck (Erlang) 时出现“未模拟”错误的原因是什么?
我是一个meck(和Erlang)新手,我在meck上有点挣扎。我收到以下错误:
在我的测试开始时,我声明要模拟的模块:
在我的测试结束时,我做的最后一件事是卸载被模拟的模块:
模拟似乎按预期工作,直到测试结束时产生上述错误。
谢谢,丰富
编辑 添加 2 ?debugFmt() 行似乎已经解决了问题;至少我不再得到错误。这是修改后的完整功能:
erlang - 如何用 meck 正确模拟 riakc_pb_socket?
使用 Erlang R16B02、riakc 2.0.0 和 meck 0.82:
当试图在我的单元测试中模拟 riakc_pb_socket 时,它会爆炸。这是我得到的:
我发现如果我在 riakc_pb_socket.erl 中评论这一行并重新编译 - 问题就会消失。有更好的解决方案吗?
所以后来……
elixir - 在 Elixir 中,如何模拟在“已使用”模块中定义的函数?
我正在使用meck,它在大多数情况下都很好用。但是,我遇到了以下错误:
elixir
(ErlangError) erlang error: {:undefined_function, {OAuth2.Strategy.AuthCode, :new, 2}}
我发现这是一个在's宏:new
中定义的函数。这意味着没有定义。在这种情况下我该如何模拟?OAuth2.Strategy
__using__
:new
OAuth2.Strategy.AuthCode
:new
erlang - 使用 meck 对具有相同参数的相同方法进行多次调用
我知道使用 ruby/rspec,您可以执行以下操作,以便为对该方法进行的不同调用接收不同的返回值:
我只能使 meck 存根成为一个具有一个返回值的方法,如下所示:
有没有办法让它ok
在第一次调用时返回,然后ok2
在第二次调用时返回?