问题标签 [ex-unit]
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.
unit-testing - 在 ExUnit 测试中使用下划线 (_)
我的 elixir 应用程序中有一个方法,比方说Some.Module.func/1
,它返回两个数字的元组。我正在用 ExUnit 编写测试,只需要测试元组中的第一个元素,并不真正关心第二个元素。
到目前为止,我已经尝试过这样做:
但是我在运行测试时遇到了这个错误:
为什么这不起作用,我如何忽略测试中不需要的结果?
elixir - 有没有办法在 ExUnit 中使用共享示例?
在RSpec中,可以创建一个测试并使用shared_examples
. 它极大地简化了开发人员的生活。
有没有办法在 ExUnit 中使用共享示例?
elixir - Elixir assert_raise 不捕获异常
我写了这个测试用例:
但它并没有按照我期望的方式进行评估。myFn
引发 ArgumentError ( do: raise ArgumentError
),但它没有被assert_raise
.
文档中的示例工作得很好:
从文档中:
assert_raise(exception, function)
断言在执行exception
期间引发。function
返回获救的异常,否则失败
我猜在我的测试用例中,首先评估参数。但是我应该怎么写呢?
testing - 使用 ExUnit 进行测试时如何伪造 IO 输入?
我有一个 Elixir 程序我想测试它通过IO.gets
多次从用户那里获得输入。我将如何在测试中伪造这个输入?
注意:我想为每个返回不同的值IO.gets
elixir - 如何测试具有所需关联的模型
使用 Ecto 2.0:
我的测试失败了
** (RuntimeError) 不支持使用 cast/3 转换关联,请改用 cast_assoc/3
查看文档是说 cast_assoc/3 需要在 cast/3 之后调用,所以我很确定我错过了使该测试正常工作所必需的一些东西。
编辑:更新了我的代码,现在收到一个新错误:
** (Ecto.CastError) 期望参数是一张地图,得到:
%PlexServer.BoardTileInstance{__meta__: #Ecto.Schema.Metadata<:built>, fleets: #Ecto.Association.NotLoaded<association :fleets is not loaded>, id: nil, inserted_at: nil, system: #Ecto.Association.NotLoaded<association :system is not loaded>, updated_at: nil, x: 0, y: 0}
我猜我的@valid_attrs 格式不正确?
elixir - 如何使用零允许或必需属性使无效属性测试通过
使用 Ecto 2.0 我试图通过这个测试:
这是模型
似乎 cast 只是忽略了任何不在允许列表中的数据,因此变更集被认为是有效的,没有通过测试。
io - 测试从衍生进程捕获的 IO
我想通过以下方法测试返回值和 IO 输出:
在ExUnit.CaptureIO
文档中,有一个执行此操作的示例测试,如下所示:
鉴于此,我认为我可以编写以下执行类似操作但使用spawn
ed 进程的测试:
但是,我收到以下错误消息,告诉我没有输出,即使我可以在终端上看到输出:
spawn
那么,在测试ed 进程或使用receive
宏的方法方面,我是否遗漏了一些东西?如何更改我的测试以使其通过?
elixir - 如何在凤凰城中使用会话连接?
我有一个身份验证插件,我想测试我的控制器。问题是这个插头里的线有
当我使用这种方法时它总是为零(我以前使用过脏黑客,但我不再想这样做了):
我正在使用这个 conn 发送一个补丁请求,它的会话 user_id 是 nil。IO.puts conn
在我的插件中的结果:
我需要做些什么来解决这个问题并很好地测试身份验证?
更新认证插件
路由器(我从这里剪掉了一些部分):
testing - Elixir 中的测试方法委托
我有两个模块:
什么是测试委派的正确方法,而无需复制粘贴测试Base.ModuleOne.do_stuff/1
不同命名空间下的功能?
elixir - 如何在测试期间运行真正的凤凰服务器?
我正在使用我无法模拟的外部库来实现有点棘手的功能。他们需要实现对服务器的真实请求。所以,
如何在测试实施期间运行网络服务器?
PS我的config/test.exs
:
我正在尝试curl http://localhost:5000
但得到curl: (7) Failed to connect to localhost port 5000: Connection refused