问题标签 [hunit]
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 - 如何在断言失败时使 HUnit 打印换行符?
我的一些 HUnit 测试将相当大的结构与assertEqual
. 由于 HUnit 将字符串打印在一行上,因此很难发现其中的错误。我想做的是Text.Groom
用来漂亮地打印这些结构,但是如果我将一个字符串传递给assertEqual
换行符,则会显示为\n
这样它会使输出更难阅读。
我如何制作 HUnit,assertEqual
特别是打印带有换行符的修饰字符串?
haskell - 是否可以在 IO 以外的单子中将 HUnit 与测试框架一起使用?
我目前有以下测试代码:
这有点工作,但它很乱。我宁愿能够编写一些东西而不必返回各种被测试的东西,而是在它们有意义的地方拥有断言。
我看到有Assertable
课程,但似乎我最终可能不得不重新发明一堆东西。
unit-testing - 如何测试 Haskell 中的错误?
我希望能够确保函数在接收到无效值时会引发错误。例如,假设我有一个函数 pos 只返回一个正数:
这是一个简单的例子,但我希望你能明白。
我希望能够编写一个预期会出错的测试用例,并将其视为通过测试。例如:
[我的解决方案]
这就是我根据@hammar 的评论最终得出的结论。
haskell - 使用测试创建完整的 Haskell 堆栈
我是 Haskell 的新手,我正在尝试构建一个正在测试的程序。我决定使用 HUnit 和 Cabal。
从我所看到的结构良好的项目来看,如下所示:
对我来说神秘的部分是 TestRunner.hs 和 AppName.cabal。
在 testsuite/tests 目录和子目录下运行所有测试的 testrunner 会是什么样子?它如何与 Cabal 集成?
另外,如何将 hackage 依赖项放在 AppName.cabal 中并从命令行构建它们?
我很难找到一个完整的示例,从头开始构建一个包含测试和依赖项的应用程序。
谢谢
haskell - Haskell 对 HUnit 中 ErrorCall 的单元测试
我有一个功能:
在某些情况下,它会抛出error
函数异常:
我正在使用Test.HUnit
单元测试,我想制作一个测试用例,断言这些错误是在某些输入上引发的。我发现了这个,它提供了一种测试异常的方法,它是 的实例Eq
,但error
似乎给出了一个ErrorCall
异常,它不是 的实例Eq
,所以我得到了错误:
如何编写一个TestCase
断言error
被调用并(最好)检查消息的断言?
haskell - 使用文件相关测试的 HUnit 测试
我有一个词法分析器,并希望针对一组已知的良好测试用例对其进行测试。它们保存在子目录./test_src/中,每个都有扩展名testname .txt
我想做的是获取所有相关测试用例的路径:
并创建一个包含 HUnit TestCases 的 HUnit TestList,每个都有一个通过函数创建的断言,如下所示
类似的东西
我的方法似乎失败的地方是,这似乎首先需要以下函数,然后映射其结果:
我强烈怀疑我所遵循的方法是不可能的,因为它似乎需要逃避 IO Monad,所以我要问的是:
- 这种方法是否可行,如果是的话,我错过了什么?
- 如果没有,你将如何解决这个问题?在所有测试用例中避免硬编码一定很常见
unit-testing - 传播错误导致 HUnit 测试失败
我正在为一个函数编写一个 HUnit 测试eval :: Wff -> Assignment -> Maybe Bool
。Wff
是一种自定义数据类型,它是布尔表达式简化子集的抽象解析树:
并且Assignment
是关联列表的类型别名,它为 a 中的每个变量提供一个布尔值Wff
:
我当前的测试如下所示:
构建的两个测试都通过了。但是,测试不是很稳健。如果我用更复杂的值修改它wffStr
但打错了,模式Right wff
将失败,因为parse
将返回 aLeft String
而不是 a Rigth Wff
。这会导致测试运行中止,我宁愿让少数糟糕的测试失败,而其他测试则得到实际结果。如何修改我当前的结构,以便错误传播以导致测试失败而不是一起中止?
haskell - Haskell - 断言一个函数被调用
是否可以验证在 Haskell HSpec 中调用了一个函数?
假设我有两个函数foo和bar可以转换我的数据。
而且我有一个函数, 它根据它是否收到'f'或'b'作为第二个参数并返回应用函数的结果,在Stuff上应用foo或bar 。
在我的测试中,我已经全面测试了每个函数 foo 和 bar ,我不想在apply中测试它们的效果。
我可以验证是否调用了函数 foo 或 bar 吗?取决于传递给应用的参数是什么?
haskell - cabal 沙箱中的 HUnit 测试
在遇到一些麻烦之后,我设法配置了我的 Cabal 项目,以便它运行一个简单的存根测试True @=? True
。如果我用测试包中的常量替换一个值,它仍然有效。但是,当我尝试创建要测试的自定义数据类型的实例时,出现链接错误。
目前该项目由两个模块组成:
现在,当testShow
被注释掉时,一切都很好,但是当我取消注释时,我得到:
即使仍然在列表中testShow
注释掉,也会发生错误。看起来像这样:testModule
package.cabal
文件都位于: