资产4hs-核心:一组断言,用于编写更可读的测试用例

[图书馆,麻省理工学院,测试][建议标签]
版本[RSS(RSS)] 0.1.0
更改日志 更改日志.md
依赖关系 基础(>=4.7 && <5),数据默认值(>=0.7.1.1),非常不同(>=0.4.0.0),文本(>=1.2.4.1)[细节]
许可证 麻省理工学院
版权 2021耳鼻
作者 鼓掌鼻
维护人员 p.nosal1986@gmail.com
类别 测试
主页 https://github.com/paweln1986/assert4hs-core#自述文件
Bug跟踪器 https://github.com/paweln1986/assert4hs-core/issues
源回购 头部:git克隆https://github.com/paweln1986/assert4hs-core网站
已上传 通过博文19862021-04-08T18:26:50Z
分配
反向依赖关系 2直接,0间接[细节]
下载 总共253个(过去30天内有6个)
额定值 (尚未投票)[估算人贝叶斯平均]
您的评分
  • λ
  • λ
  • λ
状态 可用文档[生成日志]
上次成功报告时间:2021-04-08[所有1个报告]

assert4hs-core-0.1.0自述文件

[返回包描述]

资产4hs

该库旨在提供一组组合符来断言任意嵌套数据结构。这个库的灵感来自于Java的AssertJ,断言的组成灵感来自于透镜库。

新断言可以很容易地编写并与其他断言组合。所有失败的断言都会被收集并呈现给用户。

data Foo=Foo{name::String,age::Int}派生(Show,Eq)断言(Foo“someName”15)$等于(Foo“someNName”15).焦点年龄.tag“年龄”.大于20

导致

给定Foo{name=“someName”,age=15}应该等于Foo{name=“someN1ame”,age=15}Foo{name=“someName”,年龄=15}Foo{name=“someNName”,年龄=15}给定的[年龄]15应该大于20

示例

简单断言
结果=10assert结果$等于10
撰写断言

断言是可组合的,这允许在一个测试用例中验证多个条件。

结果=10assert结果$大于5.小于20>>>给定的4应大于5
关注部分数据结构

有时,转换测试对象并对其提取部分执行断言是很方便的集中功能。

data Foo=Foo{name::String,age::Int}派生(Show,Eq)断言(Foo“someName”15)$isEqualTo(Foo“someName”15).焦点年龄.大于20.小于等于5>>>给定的15应大于20>>>给定的15应该小于或等于5
改变测试对象

这个集中函数允许转换被测对象,但原始对象将丢失。功能里面与函数类似集中但保留测试中的原始对象。

data Foo=Foo{name::String,age::Int}派生(Show,Eq)断言(Foo“someName”15)$年龄内(大于20。小于5)焦点名称.is等于“someName1”>>>给定的15应大于20>>>>>>给定的15应该小于或等于5>>> >>>给定的“someName”应等于“someName1”>>>“someName”>>>╷>>> │>>> ╵>>>“someName1”>>>          ▲
标记断言

一旦我们的测试增长,就很难发现哪些断言失败了,以及为什么失败了。这就是为什么功能标签存在时,可以为断言命名,并为失败消息指定一个更可读的名称。

data Foo=Foo{name::String,age::Int}派生(Show,Eq)断言(Foo“someName”15)$内部年龄(标记“年龄”。大于20。小于5).tag“名称”焦点名称.is等于“someName1”.tag“不应相等”.is不等于“某个名称”>>>给定的[年龄]15应该大于20>>> >>>给定的[年龄]应小于或等于5岁>>> >>>[name]给定的“someName”应等于“someName1”>>>“someName”>>> ╷>>> │>>> ╵>>>“someName1”>>>          ▲>>> >>>[name.should not be equal]给定的“someName”不应等于“someName”
自定义断言

有时创建一个明确描述测试内容的自定义断言很方便。为此,我们有简单断言功能

适合就业::断言Foo适合就业=simpleAssertion(年龄a>17岁)(“新员工必须年满18岁,但有”<>show(年龄a)).simpleAssertion(\a->age a<70)(\a->“必须小于70岁,但有”<>show(age a))断言(Foo“someName”15)适合就业>>>新员工必须年满18岁,但有15岁断言(Foo“someName”76)适合就业>>>必须小于70岁,但有76岁

资产4hs-规格-assert4hs和hspec公司

资产4hs-可靠-assert4hs和美味的