问题标签 [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.
haskell - 如何从使用 cabal 测试运行的 hspec 中获取快速检查失败的详细信息
根据http://hspec.github.io/quickcheck.html,我正在使用带快速检查的 hspec
但是,在失败时,我只是知道规范中发生了失败,没有关于 quickcheck 使用的数据的详细信息,因此我可以开始诊断失败。通过 cabal 运行测试时,如何获取此详细信息?
unit-testing - 在测试期间访问由 `beforeAll` 设置的值
这是我所拥有的:
的文档runIO
建议我可能应该使用它beforeAll
,因为我不需要manager
构建规范树,我只需要它来运行每个测试,在我的用例中,最好让它们共享同一个管理器而不是创建每个测试一个新的。
如果您不需要 IO 操作的结果来构建规范树,那么 beforeAll 可能更适合您的用例。
但我不知道如何从测试中访问经理。
haskell - HSpec Nothing 期望编译失败
我正在学习 Haskell,我已经编写了这个函数:
我现在正在尝试使用 HSpec 对其进行测试:
但这无法编译:
我也试过这个:
但这仍然失败:
我不知道这里有什么问题。如果我尝试像这样的其他测试,它编译得很好:
所以,它是关于Nothing
它自己的,它不能用相等来比较?你如何断言某些东西会返回Nothing
呢?还是我的功能太通用了?
旁注:我看到这个函数有类似的错误:
尝试测试空列表时:
失败了:
haskell - Hspec:发现、自定义 main 并将参数传递给规范
我正在尝试hspec-discover
与 custom 一起使用Main
。CustomMain
是一个创建所有'sbracket
使用的文件描述符。Spec
这是我的Spec.hs
:
这是我的Main.hs
:
为了让我spec
在单个自动发现的模块中接受文件描述符参数,我需要将其声明为
但hspec-discover
要求将规范声明为
否则自动生成的模块无法编译:
那么,如何在不干扰自动发现的情况下将参数传递给规范?我的想像飘向IORef
',但这个想法让我不寒而栗。什么是正确的方法?
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
实例来解析整个响应并检查填写的记录。这有点乏味。
关于库代码中导致此问题的任何建议?以及如何解决?
谢谢,
haskell - 使用 Hspec 运行 HUnit 测试
我想在规范中运行 HUnit 测试:
上面的代码有效,但它产生了这个丑陋的输出:
是否可以将标签附加toHit
到每个测试用例上?像这样的东西:
更好的是在每个toHit
案例中附加一个数字。我搞砸了TestList
,map TestLabel
但无济于事。
haskell - cabal 测试配置错误
我的.cabal
文件包含以下 hspec 配置:
我的目录结构如下:
当我运行时cabal build
,我的源代码成功构建为可执行文件./dist/build/myproj/myproj
。
cabal build
然后失败:
检查build
目录显示my-tests
目录丢失。
改变hs-source-dirs
tosrc/tests
产生:
将所有测试移动到根/测试下的顶层,并将.cabal
文件更改为hs-source-dirs: tests
生成:
我怎么配置错了?
haskell - 尽管 CPP 覆盖,hspec 仍无法导入(私有)代码依赖项
假设我有一个像这样的 src 文件:
像这样的.cabal
文件:
像这样的主测试文件:
和一个测试文件,如:
为什么我的 CPP 没有按预期工作?我该如何解决?
haskell - 测试返回 Maybe Monad 的函数
说我有一个功能:
和一个测试:
然而,这会产生:
为什么?我该如何解决?
haskell - 测试不实现 Eq 的自定义数据类型
假设我有以下自定义数据类型:
和一些功能
现在我正在尝试为此编写 hspec 测试,如下所示:
这失败了:
我的问题是,是否可以在测试范围内临时实现 Eq 类型类Animal
?还是有更好的方法来做到这一点?