问题标签 [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 投票
2 回答
269 浏览

haskell - HSpec(或HUnit)是否可以将更多信息附加到打印的断言中,并且仅在失败的情况下?

类似于 quickcheck 如何支持反例:

但在某种程度上它适用于shouldBe,例如

我希望它可以打印以下内容:

0 投票
0 回答
606 浏览

haskell - Hspec 无法加载 Spec 文件的接口

我正在尝试运行 hspec,但出现“无法为 Spec 文件加载接口”的错误。我从github尝试了类似的例子,得到了同样的错误。请建议我哪里出错了......(PS:我可以用堆栈运行它)。

来自 github 的示例(https://github.com/FranklinChen/twenty-four-days2015-of-hackage)我有以下文件:

和测试文件为

测试目录中的规范文件(Spec.hs)为:

运行方式:runhaskell test/Spec.hs

0 投票
0 回答
63 浏览

haskell - 在 Hspec 示例中创建任意数据

当我运行我的 Hspec 测试套件时,它提到了它用于该运行的随机种子。我假设它使用该种子作为属性,但我也想用它在我的非属性示例中生成任意示例。我该怎么做呢?

更具体地说,我试图弄清楚如何访问 Hspec 正在使用的相同随机源。我已经在 API 文档中寻找类似 的东西SpecM a (Gen x),但我没有看到任何可以让我这样做的东西。

0 投票
0 回答
234 浏览

haskell - 如何使用 HSpec 测试 Control.Exception.Assert 的结果

我想使用Control.Exception.Assert来获取自定义错误消息。

我想用HSpec测试这些。

在repl中我可以看到:

如何测试异常和消息是否正确?换句话说,对于byEq抛出异常的情况,我想测试异常类型和异常消息都是预期的。

就像是:

0 投票
2 回答
617 浏览

haskell - 是否可以跳过 HSpec 测试套件中的测试?

在大多数编程语言中,在某些情况下很容易跳过测试。在基于haskell HSpec的测试套件中是否有合适的方法来做到这一点?

0 投票
1 回答
76 浏览

haskell - 抽象 Hspec 测试

我正在阅读“从第一原理开始的 Haskell 编程”,我发现自己一遍又一遍地以以下方式编写代码:

我尝试将其抽象化,但在我的水平上,我无法找到使其工作的方法

我本来希望完成的是这样的

编辑:在 Sapanoia 的回答之后,我尝试如下

但我收到以下错误

然后,定义类型以生成任意值和函数对我来说变得相当复杂。

有没有办法可以将 checkFunctor 的类型绑定到特定类型,如下所示?

当然我试过这个,它给了我一个解析错误,我认为这只是我没有正确使用'forall'。

0 投票
1 回答
174 浏览

unit-testing - 在 Haskell 的惰性表达式中对 undefined 进行单元测试

在 Haskell 中编写一个单元测试,其中undefined遇到表达式应该失败的地方有点棘手。我用 HSpec 尝试了以下操作:

无济于事。它报告我did not get expected exception: SomeException

如果我在 REPL 中评估相同的表达式,我会得到:

0 投票
1 回答
943 浏览

haskell - 使用 MonadIO 测试类型类:“没有实例也没有默认方法”错误

我有一个执行一些 IO 的类型类。我已经使用以下方法对其进行了概括MonadIO

在测试中,我希望替换实现,以便测试使用的函数getSomething,所以我这样做:

如果没有实例声明,代码会发出警告:

所以我补充说:

这当然可以编译。

在 Hspec 中运行测试会导致此运行时错误:

我试过使用liftIOfrom Control.Monad.IO.Class

但这会导致NonTermination运行时异常:

请问有什么办法可以解决这个问题吗?

0 投票
1 回答
1460 浏览

haskell - 使用 Hspec 对 IO 操作进行单元测试

我在类似的行中发现了其他问题,但在这种特定情况下没有任何问题可以回答我的问题。此外,似乎很少有资源能够简洁地涵盖 Haskell 中单元测试 IO 操作的主题。

假设我有这个类型类用于我的数据库通信:

以及使用它的这个函数:

我希望getIt用 hspec 测试这个函数,但没有它与数据库通信,这可能意味着替换MonadDB它使用的,但我该如何实现呢?

0 投票
1 回答
113 浏览

haskell - 使用 hspec 测试酸性状态

我是一个haskell noob,并且在使用酸状态测试功能时遇到问题。这是我的数据结构

这是我要测试的功能:

这是我的测试:

我不知道如何为我的期望值建模。UserState{ name = "Mike"}不工作