一个库在 src-directory 中,并且有一个数据定义 A。与测试相关的代码在 test-directory 中,正如许多教程中所建议的那样,其中包括用于生成测试用例的串行实例,请参见下面的链接:
instance Monad m => Serial m A where ...
cabal test
警告这是一个孤儿实例。这是不可避免的还是有组织库的既定约定,例如,将串行实例定义移动到定义数据 A 的位置?后一种感觉有点不对劲,因为在测试目录中继续测试相关的东西会很好。如果这是一种典型的方式,那么可以通过哪些方式避免在公共接口上暴露测试相关的东西?编写所有测试模块的“内部”版本(公共模块和实际测试程序将使用)?单元测试问题中提出了类似的建议。
或者这根本不重要?在测试相关代码时留下孤立实例是多么糟糕的约定?