我的程序主要是在拉斯卡拉和爪哇,使用scalatest在拉斯卡拉和junit为单元的测试。我想要应用同样的检验来几个实现相同的接口/特征。这个想法是确认该接口合同是强制执行和检查里氏替代原则。

例如,测试时实现的清单,测试可以包括:

  • 一个实例应当空的,如果并且只有如果并且只有如果它有零尺寸。
  • 后呼吁明确的,尺寸应该是零。
  • 增加一个元素中的一个列表,将增加一个索引的右轴要素。
  • 等等。

什么是最好的做法?

有帮助吗?

解决方案

这听起来像它可以工作为共享试验。共享试验测试,共有不同的具的对象。即, 同一测试,代码为运行在不同的数据。ScalaTest没有这种支持。搜索"共有的测试"的文件中你最喜欢的风格特点,表示测试和功能(Spec,WordSpec,FunSuite,FlatSpec,等等)。一个例子是语法FlatSpec:

it should behave like emptyList

看看 共享试验FlatSpec 文档

其他提示

在Java/JUnit,我通常处理这个具有一个抽象的测试用例从哪测试的具体试验的类继承了所有的测试,并已安装的方法实例的执行情况。我不能看视频abyx贴的权利,但是,我怀疑它的这一一般想法。

另一个有趣的可能性,如果你不介意介绍又一个测试框架将使用 JDave 规范类。

我还没有尝试使用这些与Scalatest或与卡拉特性和实现的,但它应该是可以做到类似的东西。

合同的测试都容易做到的有JUnit4, 在这里,'s的一个视频通过本都.

为卡拉,强烈考虑ScalaCheck.所有的这些合同都可表达作为一个行规范ScalaCheck.时运行,ScalaCheck将产生一个配置数量的样本输入随机,并检查所有的规格举行。这是关于最语义上的密集方式可以创建单元的测试。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top