Hspec中Spec类型的Monad实例及>>操作等价性疑问
Hspec中Spec类型与>>操作的问题解答
问题1:Spec类型是否实现了Monad类型类?
是的,Spec类型实现了Monad类型类。Hspec的Spec本质是用于累积测试用例的抽象,Monad实例的支持让它可以通过>>等操作将多个测试块组合在一起,实现测试用例的拼接与整合。
问题2:该行代码是否等价于hspec testBuildBoard,因为第一个操作的结果被丢弃?
不等价。这里的>>操作符对于Spec类型来说,并不是简单丢弃前一个操作的结果,而是合并两个Spec包含的所有测试用例。执行hspec (testValidateFEN >> testBuildBoard)时,会依次运行testValidateFEN和testBuildBoard中的全部测试;而hspec testBuildBoard只会执行testBuildBoard里的测试,完全不会涉及testValidateFEN的内容。
内容的提问来源于stack exchange,提问作者F. Zer
相关产品推荐
相关产品推荐

