问题标签 [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.

0 投票
1 回答
730 浏览

unit-testing - 在 ExUnit 测试中使用下划线 (_)

我的 elixir 应用程序中有一个方法,比方说Some.Module.func/1,它返回两个数字的元组。我正在用 ExUnit 编写测试,只需要测试元组中的第一个元素,并不真正关心第二个元素。

到目前为止,我已经尝试过这样做:

但是我在运行测试时遇到了这个错误:

为什么这不起作用,我如何忽略测试中不需要的结果?

0 投票
1 回答
635 浏览

elixir - 有没有办法在 ExUnit 中使用共享示例?

RSpec中,可以创建一个测试并使用shared_examples. 它极大地简化了开发人员的生活。

有没有办法在 ExUnit 中使用共享示例?

0 投票
1 回答
3739 浏览

elixir - Elixir assert_raise 不捕获异常

我写了这个测试用例:

但它并没有按照我期望的方式进行评估。myFn引发 ArgumentError ( do: raise ArgumentError),但它没有被assert_raise.

文档中的示例工作得很好:

从文档中:

assert_raise(exception, function)
断言在执行exception期间引发。function返回获救的异常,否则失败

我猜在我的测试用例中,首先评估参数。但是我应该怎么写呢?

0 投票
2 回答
862 浏览

testing - 使用 ExUnit 进行测试时如何伪造 IO 输入?

我有一个 Elixir 程序我想测试它通过IO.gets多次从用户那里获得输入。我将如何在测试中伪造这个输入?

注意:我想为每个返回不同的值IO.gets

0 投票
1 回答
1484 浏览

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 格式不正确?

0 投票
1 回答
88 浏览

elixir - 如何使用零允许或必需属性使无效属性测试通过

使用 Ecto 2.0 我试图通过这个测试:

这是模型

似乎 cast 只是忽略了任何不在允许列表中的数据,因此变更集被认为是有效的,没有通过测试。

0 投票
2 回答
804 浏览

io - 测试从衍生进程捕获的 IO

我想通过以下方法测试返回值和 IO 输出:

ExUnit.CaptureIO文档中,有一个执行此操作的示例测试,如下所示:

鉴于此,我认为我可以编写以下执行类似操作但使用spawned 进程的测试:

但是,我收到以下错误消息,告诉我没有输出,即使我可以在终端上看到输出:

spawn那么,在测试ed 进程或使用receive宏的方法方面,我是否遗漏了一些东西?如何更改我的测试以使其通过?

0 投票
3 回答
3839 浏览

elixir - 如何在凤凰城中使用会话连接?

我有一个身份验证插件,我想测试我的控制器。问题是这个插头里的线有

当我使用这种方法时它总是为零(我以前使用过脏黑客,但我不再想这样做了):

我正在使用这个 conn 发送一个补丁请求,它的会话 user_id 是 nil。IO.puts conn在我的插件中的结果:

我需要做些什么来解决这个问题并很好地测试身份验证?

更新认证插件

路由器(我从这里剪掉了一些部分):

0 投票
1 回答
361 浏览

testing - Elixir 中的测试方法委托

我有两个模块:

什么是测试委派的正确方法,而无需复制粘贴测试Base.ModuleOne.do_stuff/1不同命名空间下的功能?

0 投票
1 回答
809 浏览

elixir - 如何在测试期间运行真正的凤凰服务器?

我正在使用我无法模拟的外部库来实现有点棘手的功能。他们需要实现对服务器的真实请求。所以,

如何在测试实施期间运行网络服务器?

PS我的config/test.exs

我正在尝试curl http://localhost:5000但得到curl: (7) Failed to connect to localhost port 5000: Connection refused