Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir 如何使用render_change结果匹配特定元素?_Elixir_Phoenix Framework_Ex Unit_Phoenix Live View - Fatal编程技术网

Elixir 如何使用render_change结果匹配特定元素?

Elixir 如何使用render_change结果匹配特定元素?,elixir,phoenix-framework,ex-unit,phoenix-live-view,Elixir,Phoenix Framework,Ex Unit,Phoenix Live View,我正在测试LiveView表单 我得到的结果是一个包含呈现html的字符串 我想断言结果有一些特定的元素。它可以用这样的函数来完成 assert view |> element("#target", "test") |> has_element?() 但它只接受LiveView的实例,而不是html字符串 断言render\u change/2结果将具有特定文本的特定标记的最佳方法是什么?有三种主要方法可以验证这一点 第一个也是最简单的方法是

我正在测试LiveView表单

我得到的结果是一个包含呈现html的字符串

我想断言结果有一些特定的元素。它可以用这样的函数来完成

assert view |> element("#target", "test") |> has_element?()
但它只接受LiveView的实例,而不是html字符串


断言
render\u change/2
结果将具有特定文本的特定标记的最佳方法是什么?

有三种主要方法可以验证这一点

第一个也是最简单的方法是将更新后的HTML与元素中的特定文本进行比较。比如说:

html=
看法
|>元素(“过滤器形式”)
|>渲染更改(%%{filter:%%{days:“14”})
断言html=~“我的特定文本”
另一种方法是解析HTML并找到所需的元素,如:

html=
看法
|>元素(“过滤器形式”)
|>渲染更改(%%{filter:%%{days:“14”})
断言[元素]=
html
|>Floki.parse_文件!()
|>Floki.find(“目标”)
通过该
元素
,您还可以验证特定属性

最后一个就是你建议的。LiveView测试中使用的
视图
是处理事件的参考。因此,当您调用
render.*
testhelper函数时,该函数的状态会发生变化。因此:

assert view |>element(“#目标”、“测试”)|>has_element()
通常应该有效

assert view |> element("#target", "test") |> has_element?()