问题标签 [elm-test]

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 回答
96 浏览

elm - 执行 elm-test 引发运行时异常:无法读取未定义的属性“href”

以下测试导致运行时异常:

我的预感是Navigaton.Location是例外。但是,我不知道如何解决这个问题。

源代码可以在GitHub上找到。

0 投票
1 回答
253 浏览

testing - 将外部数据加载到 Elm 测试套件中

我正在编写一个 Elm 测试套件,并希望使用存储在外部文件中的已知良好输入/输出对列表来检查函数的输出。我可以选择外部文件的格式,例如我可以使用 JSON,但我需要将它分开,因为它是从其他语言访问的。(我基本上是确保函数的 Elm 版本与其他版本匹配)。

我不想将这些值硬编码到 Elm 测试模块中。有没有办法用 Elm 和 elm-test 做到这一点?

0 投票
1 回答
287 浏览

testing - 在 Elm 中测试去抖动

我正在尝试在我的 Elm 应用程序中测试去抖动功能,但不知道如何。

去抖应用于模糊搜索的文本字段,以避免发出过多的 http 请求,它以本示例https://ellie-app.com/jNmstCdv3va1为模型并遵循相同的逻辑。

我想确保,在调用之后

Http 请求仅在 debounceTime 之后发送。

在使用 searchInput 消息调用更新函数后,我可以轻松地测试模型。例如,在这里我检查模型中“debouncingCounter”字段的初始值是否设置为 1:

但是,我看不到如何测试延迟的 Cmd Msg 对模型的影响,因为我无法直接应用更新函数返回的 cmd 值。

似乎实现去抖动的不同方式并不能解决问题,因为它们都依赖于命令消息。

0 投票
1 回答
156 浏览

elm - Elm 测试说模块声明无效,但为什么呢?

我对 Elm 很陌生,我正在使用 Elm 0.19 开始我的第一个宠物项目。

我想在我的应用程序中创建一个 JSON 解码的测试用例。从服务器返回的 JSON 如下所示(所有内容都在名为 的文件中定义Frontend.elm):

我的 Elm 模型如下所示:

我的解码逻辑是这样定义的:

现在我尝试使用elm-explorations/test包为此创建一个测试用例:

但是当我尝试使用它运行它时,elm-test我得到了这个错误:

我不明白我做错了什么。该模块的定义如下Frontend.elm

我可以使用以下方法很好地编译它:

您实际上可以在github找到代码。

我该如何解决这个问题?

0 投票
1 回答
198 浏览

elm - 在榆树测试中更改测试目录?

我正在使用 Java 和 Maven 构建我的服务器应用程序(参见github),通常您将源代码放在文件夹中src/main/<language>并在src/test/<language>.

使用 Elm,我使用elm-explorations/test来运行我的测试(因为我使用的是 Elm 0.19),但我似乎找不到将测试文件夹更改为src/test/elm而不是tests.

例如,我尝试过更改elm.json和添加:

但这似乎不起作用。所以我的问题是:

如何更改elm-test假定测试所在的文件夹?

0 投票
1 回答
47 浏览

json - elm-test 无法识别记者标志

我们决定使用测试中的 JUnit xml 文件,并在 CI 期间将它们作为工件上传到 Gitlab。

对于榆树,我遵循https://www.npmjs.com/package/elm-test?activeTab=readme并使用

但它实际上什么也没做。输出是纯文本。

与 相同json

正如我从重现部分的输出中看到的那样,看起来elm-test甚至没有注意到reporter标志。

有没有人有解决方案的想法?

0 投票
1 回答
87 浏览

elm - 如何在 fuzz 测试模块中没有 andThen 的情况下扁平化 Fuzz ( Fuzz ( Fuzz A)))?

我有“父”A类型,其中包含“子”B类型。

这是我的应用程序中主要数据结构的简化版本。

AB和都是独立的 elm 模块A_idB_id

如果我可以使这种简化工作,那么可能更容易解决我的实际问题。

基本上我的问题是如何为A.

条件是两者A_idB_id.. 需要共享相同的内容A_id

那么如何创建Fuzzer A呢?

对于上面的代码,我得到了 Fuzzer (Fuzzer A)错误,而不是Fuzzer A.

榆树嵌套模糊器错误

在我的实际应用程序中,我得到了更复杂的错误:

Fuzzer ( Fuzzer ( Fuzzer ( Fuzzer Exchange )))Fuzzer Exchange

我基本上需要将其展平andThen- 但在 fuzz elm 测试包中不存在这样的功能 - 出于一些不太明显的原因。

我尝试了什么:

我正在与这个问题作斗争 3 天 - 有人在 slack 建议andthen故意将其移除,我应该使用custom模糊器 - 我更深入地了解了收缩器的工作原理(我以前不知道它们)以及如何使用Fuzz.custom只是测试它们是否正确。

Fuzz.custom 需要一个生成器和一个收缩器。

我可以构建生成器并生成我需要的一切,但我不能构建收缩器 - 因为 B 和 A 以及 C 和 D.. 等等都是不透明的数据结构 - 在它们自己的模块中 - 所以我需要得到它们的所有带有吸气剂的属性 - 为了缩小它们。

所以对于上面的例子 - 要缩小B我需要提取并通过一个缩小器运行它.. 然后通过创建一个新的b_id来放回它- 使用公共 api .. 我没有公共的 getter api我保留的属性,等等..这样做似乎是错误的(添加我在应用程序中不需要的getter - 仅用于测试目的..)BBBBCD

所有这些混乱都是因为andThen在 fuzz 模块上被删除了......但也许有办法,也许他们是对的 - 我没有看到解决方案。链接到模糊器模块:这里

那么如何为A数据类型构建一个模糊器呢?

任何想法如何处理这个嵌套的模糊器?如何将它们展平回到一个级别?

或者换一种说法,如何构建像上面那样相互依赖的模糊?(我想到的一个例子是 - 就像运行一个依赖于另一个 http 请求在它开始之前完成的 http 请求 - 因为它需要来自前一个请求的数据.. 这个模型被认为是函数式编程并且通常完成与andThenbind或东西。)

任何见解都值得赞赏。谢谢 :)

0 投票
0 回答
64 浏览

elm - 使用 elm-test 替代 Expect.all?

我是 Elm 的新手,我对 elm-test 有一些疑问。我尝试在同一个测试中有多个期望,但没有找到方法。所以这是我现在所做的,但它并没有真正的表现力

我试过了,Expect.all但它似乎没有做我想要的

0 投票
2 回答
495 浏览

elm - 在 git hub 操作中使用 elm-test

每当提交被推送到主分支时,我想使用 git hub 操作来测试和构建我的 elm 包,因为我的操作.yml文件看起来像这样

用于测试我想使用elm-test它可以通过安装npm但命令sudo npm install -g elm-test失败

关于如何elm-test在 git hub 操作中安装的任何建议?

编辑:没有sudo错误变成

0 投票
1 回答
60 浏览

elm - 如何在不暴露所有内容的情况下测试 Elm 模块?

通过“Elm in Action”,我了解到要编写测试,某个模块的测试套件中所需的所有函数和类型都必须由该模块公开。这似乎打破了封装。我不想公开应该保持隐藏的内部函数和类型构造函数,只是为了使它们可测试。有没有办法将内部函数公开类型仅用于测试,但不用于常规使用?