问题标签 [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.

0 投票
2 回答
269 浏览

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

类似于 quickcheck 如何支持反例:

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

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

0 投票
2 回答
299 浏览

haskell - 异常的单元测试

我可以编写一个测试用例Test.HUnit来检查调用是否引发异常?

我只关心它是否抛出任何错误,不管它打印什么消息。

0 投票
1 回答
94 浏览

haskell - 如何使用 Hunit 测试导入 Control.Monad.Except?

我如何测试Control.Monad.Except(两个保护结果)如下函数:

使用hunit

0 投票
1 回答
143 浏览

haskell - Haskell 中类型类实例实现的通用单元测试模式

我想知道是否存在编写通用单元测试代码的已知模式,其目的是检查(作为黑盒)类型类的各种实例(实现)。例如:

我想编写一个tests返回 a的函数,该函数Test以某种方式指定tests代码适用的特定实例。我正在考虑tests使用默认实现添加类的定义(暂时忽略测试代码和实际代码之间的耦合问题),但我不能简单地拥有tests :: Test,即使我尝试tests:: a -> Test(因此必须人为地通过一个具体的给定类型的元素来调用函数),我不知道如何引用consfoo在代码内部(类型注释(cons 0) :: a不会这样做)。

假设我有class (Eq a) => M a where ...,使用 typesABderiving Eq,我可以用类似的东西欺骗编译器(添加到 的定义中M):

但这对我来说非常难看。任何建议都热烈欢迎

0 投票
1 回答
112 浏览

haskell - 如果测试中存在“Nothing == Nothing”条件,HUnit 不允许编译测试用例

我遇到了一个奇怪的HUnit行为。如果测试中存在条件,则不允许编译Nothing == Nothing测试用例。这是我重现此行为的代码:

尝试使用此内容加载文件会ghci返回以下错误:

请注意,Just 2 == Just 2同一测试用例中的条件可以正常工作。如果我输入Nothing == Nothingghci它会True按预期返回。

任何想法为什么HUnit会这样?这是错误还是预期行为?

0 投票
1 回答
655 浏览

haskell - 是否可以在 HUnit 中断言错误情况?

如果我有一个导致某个输入错误的函数,是否可以编写一个测试来验证该输入是否发生错误?

我在HUnit中找不到这个“断言错误”功能。它是否在 HUnit 或其他一些测试包中可用?

0 投票
1 回答
142 浏览

haskell - 为什么我的测试文件不能导入我的数据结构?哈斯克尔

我目前正在为我的(非常简单的)二十一点游戏编写单元测试,而我的测试文件(Tests.hs)似乎没有导入我在我正在为(HelpFunctions.hs)进行单元测试的文件中声明的数据结构。我可以访问此文件中的函数/方法,但不能访问数据结构。有人可以帮我找到问题吗?

这是我的测试文件的顶部:

这是我要为其编写测试的文件的顶部

编译测试文件时出现错误

我有另一个文件可以从中导入 HelpFunctions 和数据结构,并且可以正常工作。

0 投票
0 回答
116 浏览

unit-testing - 如何对无法构造时抛出的智能构造函数进行单元测试?

我正在实现执行运行时检查的“智能”构造函数,如此处所述 https://wiki.haskell.org/Smart_constructors#Smart.28er.29_constructors

我的第一个问题是:如何对抛出的无效参数进行单元测试?

这是我尝试过的

结果是

我的期望是在单元测试中捕获异常(assertThrow ?)并且测试成功。

我的第二个问题可能是更多的意见基础,但我不确定智能构造函数采用哪种方法:有错误的方法或有 Conntrol.Exception.assert 的方法

从长远来看,我觉得使用错误解决方案会更好;为了清楚起见以及代码维护和错误跟踪,再加上繁琐的编写一次总比繁琐的阅读 1000 次要好。

0 投票
1 回答
1934 浏览

haskell - 无法阴谋集团安装 hunit

这里的 Haskell 生态系统非常新。我正在尝试安装 hunit,但是当我运行时,cabal install hunit我收到以下消息:

0 投票
1 回答
93 浏览

haskell - Haskell HUnit 功能测试

我正在尝试为我用 Haskell 编写的一个简单的井字游戏程序设置一系列测试,但由于一个奇怪的错误被抛出读取,我无法通过我的第一个测试:

值“x”是一个 int,但 Haskell 将其读取为“IO Int”,这是错误的,因为我指定了“x :: Int”。正在测试的函数已被指定为“test_user_value :: Int -> IO Int”,所以我不确定它为什么错误地解释了变量。任何建议,将不胜感激。