问题标签 [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 回答
363 浏览

haskell - Haskell HSpec 属性生成的随机测试

我正在使用 Hspec 和 Quickcheck http://hspec.github.io/运行测试

提供的执行随机测试用例的示例是

与相关的输出:

如何查看为测试生成的实际运行时值?因此,在上面的示例中,示例所需的输出将包括为 x 和 xs 传递的值,例如:

0 投票
1 回答
45 浏览

haskell - 从 yesod-sqlite 模板中“导入 Database.Persist 作为 X 隐藏(获取)”如何工作

我正在使用 yesod-sqlite 模板并尝试在测试中使用该get函数Database.Persist

这是我的代码:

我得到的错误是:

TestImport.hs文件中,我看到了这一行:

据我了解,它应该隐藏getHSpec 模块中的功能,因此我可以X.get用于数据库检索。我也尝试过,Database.Persist.get结果get相同。

所以我的疑问是:那条线在TestImport.hs做什么?

0 投票
1 回答
180 浏览

haskell - 使用 Hspec 测试用户输入

我有一个程序,它接受用户输入,getLine然后验证它是所有数字。如果它通过了,它会运行一个函数String -> String并将结果打印到屏幕上。如果不是,它会重复getLine.

我如何测试这个主要功能,比如Hspec检查它是否使用数字输入与其他输入(字母、空等)做正确的事情

IE

0 投票
1 回答
141 浏览

haskell - Hspec:如何抑制成功的测试结果

有没有办法阻止成功的测试被打印到屏幕上?目前我有很多输入很长的测试,我只关心看到失败吗?

编辑:我正在运行我的测试 stack test

解决方案:

感谢@mb14 的回答,我能够搜索到我正在寻找的东西。

直接运行您的测试文件:

您可以使用:

或者

并通过以下方式运行stack test

资源

0 投票
0 回答
302 浏览

haskell - `stack test --test-arguments "-m" 的解释""`

在其他论坛页面上,我看到我可以hspec使用命令运行特定测试

where<filter>设置为匹配预期测试it的文本描述符。我经常使用这个命令来运行感兴趣的单个测试,而不必运行整个测试套件。

但我不明白这个命令究竟是如何指定的。例如,什么样的参数是"-m "<filter>"",那个“-m”是什么意思?"-m "<filter>""在这里可以指定哪些其他参数?

关于--test-arguments,stack test --help | less只说

这是我找到的有关如何指定堆栈以运行测试子集的唯一相关文档。

0 投票
1 回答
225 浏览

haskell - hspec 测试参数在命令行上工作,但不是来自 .hspec 文件

我正在关注关于将选项传递给 Hspec 的hspec 文档。当从命令行传递时,指定我的选项按预期工作,但从.hspec文件或任何其他列出的方法传递时不会。

我的测试套件中的一项测试与过滤器“post_returns_200”匹配。我可以单独运行此测试,而无需通过命令运行套件的其余部分

链接的 hspec 文档显示,我不仅应该能够从命令行指定此过滤器,而且还可以:从.hspec文件、内部ghci或环境变量。但是,当我按照文档通过其他方法之一指定我的过滤器时,我收到“无法识别的选项”错误。例如,当我.hspec通过

然后运行stack test返回以下

当我尝试通过环境变量或从 ghci 中指定选项时,我收到类似的错误。我已经尝试了许多关于如何指定命令的变体,例如带或不带引号,带或不带“ --test-arguments=”,但在这一点上我完全被难住了。关于为什么该选项在通过命令行指定但无法被其他方法识别时正常工作的任何建议?

0 投票
0 回答
83 浏览

haskell - 快速检查规范 DSL

我想创建一个非 Haskell 程序员可以理解的人类可读的 DSL,用于创建外部系统黑盒测试的规范。

我想知道在 Haskell 中是否可以做这样的事情。

在这里,我给出了一个伪代码,用于检查操作是否会在 0.1 秒内返回值“成功”。似乎我需要某种单子来短路错误值,以链接多个检查,将值从一个传递到另一个。

感觉应该存在这样的东西。也许您可以建议一个库或如何在 Haskell 中实现我的想法。

0 投票
0 回答
193 浏览

haskell - 如何使用 hspec 开始和回滚事务?

我正在尝试使用hspec涉及 postgres 事务回滚以及postgresql-simple'sbeginrollback命令来编写测试。

但是,应用postgresql-simple's beginand rollbackcommands 似乎会导致我的 'insert' 命令无法运行并且根本不会影响我的数据库。

这是相关的代码。

我运行它ghci,在“在这里设置断点”行设置断点;应该在条目之后和回滚之前插入。在此断点处暂停时,我查询数据库以查看是否已插入条目,并看到此代码似乎没有将条目插入数据库

但是,当我删除PGS.begin connandPGS.rollback conn行时,代码确实将条目插入到数据库中。

为什么这段代码没有在 'begin' 和 'rollback' 行中插入一个条目到数据库中?

如何编写开始和回滚的 hspec 测试,以便我的测试不会影响数据库中的值,并且实际运行命令?

0 投票
1 回答
160 浏览

haskell - Haskell Hspec - 仅在命令行标志上运行昂贵的测试

仅当命令行上的某些标志设置为stack test. 我知道我可以使用stack test --test-arguments=...,但我将在命令行上使用什么以及如何在我的Spec.hs? 我似乎无法在网上其他地方找到一个很好的例子。

编辑:在没有指定 跳过的情况下运行时是否可以跳过测试stack test?或者这是否可以通过另一个类似的规范文件和昂贵的测试来实现?

0 投票
3 回答
182 浏览

haskell - 在 HSpec 测试中匹配 Haskell 记录中的“任何字符串”

我有一个Entity定义如下的数据类:

和一个返回的函数IO Entity

我想为此编写一个HSpec测试:

问题是 id 是数据库生成的 UUID。我想断言这id是一个使测试通过的字符串。

我怎样才能做到这一点?