问题标签 [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.
pattern-matching - 如何使用模式匹配在 Phoenix 控制器测试中断言两个映射
在我的凤凰控制器测试中,我正在做这样的事情,
我的反应图是
由于我的响应映射包含预期映射中不存在的额外键,因此断言==
失败,所以我试图用这样的模式匹配进行断言
但在这种情况下,无论预期和响应中的值是什么,断言总是正确的。
我很困惑在地图的情况下模式匹配发生了什么。
elixir - 自定义 ExUnit 断言和模式匹配
我正在编写一个灵活的、基于适配器的错误跟踪库,并提供一组自定义测试断言函数以使集成测试更易于使用。
我有类似的东西
这会将确切的异常传递给assert_exception_captured
,但在尝试对例如异常的结构进行模式匹配时它不起作用。
我希望能够做到这一点
我怎样才能使它与模式匹配一起工作?
非常感激
elixir - ExUnit 断言
在测试用例中,我们使用断言来处理错误。将它们的返回值与我们定义的匹配,测试将通过。就像我们有一个参数错误一样,我们使用这个:
这将起作用并且测试将通过。如果我们有ArgumentError
. 情况也是如此RuntimeError
但是,如果我们有像这样的长错误消息:
我们如何在测试用例中处理这些长异常消息?
谢谢
elixir - Hound ExUnit:assert_raise 似乎大大减慢了测试套件的速度
我为 phoenix 应用程序添加了以下测试:
它测试用户是否可以使用有效凭据进行注册。
如果我注释掉最后一个断言,测试需要 0.7 秒才能运行。
如果我单独尝试最后一个断言,则测试需要 6.1 秒才能运行。
为什么这个断言运行得这么慢?有没有更好的方法来测试一个元素不再出现在页面上?
testing - exunit 测试用例的可覆盖宏
我正在为我的应用程序编写测试用例,并且我的大多数控制器都包含 CRUD 的通用代码,因此我编写了通用宏并在我的控制器中使用它。所有控制器的测试用例都将自动编写。但是我对如何使这个公共代码可重写感到困惑,以便我可以随时重写。
任何帮助/想法如何实现这一目标?
elixir - Elixir doctest 对于返回随机值的函数失败
我在 Elixir 中有一个函数,可以在列表中生成三个随机 RGB 元组。
当我运行我的测试时,我的 doctests 失败了。生成的元组列表与我的 doctest 中定义的不同。如何为返回随机值的函数编写文档测试?
elixir - 在宏中使用 ExUnit.Assertions
我为测试用例编写了一个小宏。
没有断言它工作正常。但是当我尝试使用断言时,它说断言是未定义的。我import ExUnit.Assertions
在模块内部尝试过,但仍然assert
未定义。
在宏中使用 assert 的可能解决方案是什么?
谢谢
elixir - 无法在 ExUnit 中断言 SyntaxError
这是我正在测试的代码:
这是我的测试:
目标是有一个解析器来收集{}
符号之间的文本。如果列表为空并且集合标志设置为 true,我希望代码会引发语法错误。但是,当我运行这段代码时,我得到了这个:
我不知道为什么会有一个FunctionClauseError
被抛出。我似乎已经解释了所有模式。我究竟做错了什么?
elixir - Elixir ExUnit:在完整的测试套件之前运行功能?
setup
在每个测试之前调用的回调和在setup_all
任何测试运行之前每个模块只调用一次的回调。
我有需要在整个测试套件运行之前准备一些东西的情况。只有一次。我正在使用非标准数据库,并使用所有索引设置架构需要一点时间。因此,我想通过不经常这样做来加快测试速度。
有没有办法处理这个?
elixir - Phoenix 控制器测试用例丢失 current_user
我面临的问题是,在所有测试中,我需要对登录用户进行不止一件事的断言,它似乎丢失了保存的会话。
我有一个设置代码,它在每次测试之前分配一个夹具用户:
我在登录区域发生的所有测试都带有标签login_as: "username"
。
第一个断言(代码中的#1 注释)始终有效,但由于某种原因,第二个断言(代码中的#2 注释)失败,它的行为就像我的用户已注销。在我需要在请求之间保留用户的所有情况下都会发生这种情况。
是否有正确的方法可以让这些数据在测试请求中保持不变,因为它是浏览器请求?