问题标签 [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 - Haskell HSpec 属性生成的随机测试
我正在使用 Hspec 和 Quickcheck http://hspec.github.io/运行测试
提供的执行随机测试用例的示例是
与相关的输出:
如何查看为测试生成的实际运行时值?因此,在上面的示例中,示例所需的输出将包括为 x 和 xs 传递的值,例如:
haskell - 从 yesod-sqlite 模板中“导入 Database.Persist 作为 X 隐藏(获取)”如何工作
我正在使用 yesod-sqlite 模板并尝试在测试中使用该get
函数Database.Persist
。
这是我的代码:
我得到的错误是:
在TestImport.hs
文件中,我看到了这一行:
据我了解,它应该隐藏get
HSpec 模块中的功能,因此我可以X.get
用于数据库检索。我也尝试过,Database.Persist.get
结果get
相同。
所以我的疑问是:那条线在TestImport.hs
做什么?
haskell - 使用 Hspec 测试用户输入
我有一个程序,它接受用户输入,getLine
然后验证它是所有数字。如果它通过了,它会运行一个函数String -> String
并将结果打印到屏幕上。如果不是,它会重复getLine
.
我如何测试这个主要功能,比如Hspec
检查它是否使用数字输入与其他输入(字母、空等)做正确的事情
IE
haskell - Hspec:如何抑制成功的测试结果
有没有办法阻止成功的测试被打印到屏幕上?目前我有很多输入很长的测试,我只关心看到失败吗?
编辑:我正在运行我的测试 stack test
解决方案:
感谢@mb14 的回答,我能够搜索到我正在寻找的东西。
直接运行您的测试文件:
您可以使用:
或者
并通过以下方式运行stack test
:
haskell - hspec 测试参数在命令行上工作,但不是来自 .hspec 文件
我正在关注关于将选项传递给 Hspec 的hspec 文档。当从命令行传递时,指定我的选项按预期工作,但从.hspec
文件或任何其他列出的方法传递时不会。
我的测试套件中的一项测试与过滤器“post_returns_200”匹配。我可以单独运行此测试,而无需通过命令运行套件的其余部分
链接的 hspec 文档显示,我不仅应该能够从命令行指定此过滤器,而且还可以:从.hspec
文件、内部ghci
或环境变量。但是,当我按照文档通过其他方法之一指定我的过滤器时,我收到“无法识别的选项”错误。例如,当我.hspec
通过
然后运行stack test
返回以下
当我尝试通过环境变量或从 ghci 中指定选项时,我收到类似的错误。我已经尝试了许多关于如何指定命令的变体,例如带或不带引号,带或不带“ --test-arguments=
”,但在这一点上我完全被难住了。关于为什么该选项在通过命令行指定但无法被其他方法识别时正常工作的任何建议?
haskell - 快速检查规范 DSL
我想创建一个非 Haskell 程序员可以理解的人类可读的 DSL,用于创建外部系统黑盒测试的规范。
我想知道在 Haskell 中是否可以做这样的事情。
在这里,我给出了一个伪代码,用于检查操作是否会在 0.1 秒内返回值“成功”。似乎我需要某种单子来短路错误值,以链接多个检查,将值从一个传递到另一个。
感觉应该存在这样的东西。也许您可以建议一个库或如何在 Haskell 中实现我的想法。
haskell - 如何使用 hspec 开始和回滚事务?
我正在尝试使用hspec
涉及 postgres 事务回滚以及postgresql-simple
'sbegin
和rollback
命令来编写测试。
但是,应用postgresql-simple
's begin
and rollback
commands 似乎会导致我的 'insert' 命令无法运行并且根本不会影响我的数据库。
这是相关的代码。
我运行它ghci
,在“在这里设置断点”行设置断点;应该在条目之后和回滚之前插入。在此断点处暂停时,我查询数据库以查看是否已插入条目,并看到此代码似乎没有将条目插入数据库。
但是,当我删除PGS.begin conn
andPGS.rollback conn
行时,代码确实将条目插入到数据库中。
为什么这段代码没有在 'begin' 和 'rollback' 行中插入一个条目到数据库中?
如何编写开始和回滚的 hspec 测试,以便我的测试不会影响数据库中的值,并且实际运行命令?
haskell - Haskell Hspec - 仅在命令行标志上运行昂贵的测试
仅当命令行上的某些标志设置为stack test
. 我知道我可以使用stack test --test-arguments=...
,但我将在命令行上使用什么以及如何在我的Spec.hs
? 我似乎无法在网上其他地方找到一个很好的例子。
编辑:在没有指定 跳过的情况下运行时是否可以跳过测试stack test
?或者这是否可以通过另一个类似的规范文件和昂贵的测试来实现?
haskell - 在 HSpec 测试中匹配 Haskell 记录中的“任何字符串”
我有一个Entity
定义如下的数据类:
和一个返回的函数IO Entity
:
我想为此编写一个HSpec测试:
问题是 id 是数据库生成的 UUID。我想断言这id
是一个使测试通过的字符串。
我怎样才能做到这一点?