问题标签 [hspec]

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 投票
0 回答
91 浏览

haskell - 如何从使用 cabal 测试运行的 hspec 中获取快速检查失败的详细信息

根据http://hspec.github.io/quickcheck.html,我正在使用带快速检查的 hspec

但是,在失败时,我只是知道规范中发生了失败,没有关于 quickcheck 使用的数据的详细信息,因此我可以开始诊断失败。通过 cabal 运行测试时,如何获取此详细信息?

0 投票
1 回答
363 浏览

unit-testing - 在测试期间访问由 `beforeAll` 设置的值

这是我所拥有的:

的文档runIO建议我可能应该使用它beforeAll,因为我不需要manager构建规范树,我只需要它来运行每个测试,在我的例中,最好让它们共享同一个管理器而不是创建每个测试一个新的。

如果您不需要 IO 操作的结果来构建规范树,那么 beforeAll 可能更适合您的用例。

但我不知道如何从测试中访问经理。

0 投票
1 回答
505 浏览

haskell - HSpec Nothing 期望编译失败

我正在学习 Haskell,我已经编写了这个函数:

我现在正在尝试使用 HSpec 对其进行测试:

但这无法编译:

我也试过这个:

但这仍然失败:

我不知道这里有什么问题。如果我尝试像这样的其他测试,它编译得很好:

所以,它是关于Nothing它自己的,它不能用相等来比较?你如何断言某些东西会返回Nothing呢?还是我的功能太通用了?

旁注:我看到这个函数有类似的错误:

尝试测试空列表时:

失败了:

0 投票
1 回答
546 浏览

haskell - Hspec:发现、自定义 main 并将参数传递给规范

我正在尝试hspec-discover与 custom 一起使用Main。CustomMain是一个创建所有'sbracket使用的文件描述符。Spec

这是我的Spec.hs

这是我的Main.hs

为了让我spec在单个自动发现的模块中接受文件描述符参数,我需要将其声明为

hspec-discover要求将规范声明为

否则自动生成的模块无法编译:

那么,如何在不干扰自动发现的情况下将参数传递给规范?我的想像飘向IORef',但这个想法让我不寒而栗。什么是正确的方法?

0 投票
1 回答
111 浏览

haskell - Aeson 或 Wai.JSON QuasiQuoter 的问题——将 0.0 转换为 0

Test.Hspec.Wai.JSON用来检查我的 api 端点的返回值。我注意到,每当我创建一个值为 的 json 时0.0,当测试运行时,它会将其转换为0(Int),如果 api 返回0.0,则测试失败。

我在 Haskell 中并没有那么先进,无法找出库代码中发生这种情况的位置。我查看了源代码Test.Hspec.Wai.JSON,它似乎依赖于Aeson.QQ所以不太确定问题的根源。这是Test.Hspec.Wai.JSON 源这是Aeson.QQ 源

因此,我的工作是编写一个FromJSON实例来解析整个响应并检查填写的记录。这有点乏味。

关于库代码中导致此问题的任何建议?以及如何解决?

谢谢,

0 投票
1 回答
79 浏览

haskell - 使用 Hspec 运行 HUnit 测试

我想在规范中运行 HUnit 测试:

上面的代码有效,但它产生了这个丑陋的输出:

是否可以将标签附加toHit到每个测试用例上?像这样的东西:

更好的是在每个toHit案例中附加一个数字。我搞砸了TestListmap TestLabel但无济于事。

0 投票
2 回答
146 浏览

haskell - cabal 测试配置错误

我的.cabal文件包含以下 hspec 配置:

我的目录结构如下:

当我运行时cabal build,我的源代码成功构建为可执行文件./dist/build/myproj/myproj

cabal build然后失败:

检查build目录显示my-tests目录丢失。

改变hs-source-dirstosrc/tests 产生:

将所有测试移动到根/测试下的顶层,并将.cabal文件更改为hs-source-dirs: tests生成:

我怎么配置错了?

0 投票
2 回答
77 浏览

haskell - 尽管 CPP 覆盖,hspec 仍无法导入(私有)代码依赖项

假设我有一个像这样的 src 文件:

像这样的.cabal文件:

像这样的主测试文件:

和一个测试文件,如:

为什么我的 CPP 没有按预期工作?我该如何解决?

0 投票
3 回答
589 浏览

haskell - 测试返回 Maybe Monad 的函数

说我有一个功能:

和一个测试:

然而,这会产生:

为什么?我该如何解决?

0 投票
3 回答
256 浏览

haskell - 测试不实现 Eq 的自定义数据类型

假设我有以下自定义数据类型:

和一些功能

现在我正在尝试为此编写 hspec 测试,如下所示:

这失败了:

我的问题是,是否可以在测试范围内临时实现 Eq 类型类Animal?还是有更好的方法来做到这一点?