0

Specs 提供了两种不同的分层结构规范的方法。一种是通过定义“规范下的系统”,另一种是通过制作子示例(一个示例是一个规范/测试语句)。

有人可以回答或指向一个网站,这些不同机制的一般预期用途是什么?我也对规范/示例的重用感到好奇。

我的用例

特别是我有一个项目,其中包含不同的算法 A 来计算给定特定输入示例 Y 的一些输出X Y_1; 必须计算正确的结果,例如 Y_2; ..."?或者我应该将不同的示例指定为SUS,以便我得到“必须可以通过算法 A_1 解决;必须可以通过算法 A_2 解决;...”?

我应该把什么变成SUS,什么变成子示例?

4

1 回答 1

1

通常,规范下的系统 (SUS) 是您指定的代码,而不是数据。

那么 SUS 和规范中的普通示例/子示例之间的主要区别在于SUS 有几种额外的方法来设置上下文,例如->- 方法

在您的情况下,我实际上建议的是,如果每种算法的数据实际上相同,只需定义一种方法来创建您的示例:

def examplesMustPassFor(algo: Algorithm) = {
  "The algo "+algo.name should {
    "pass the data set 1" in { ... }
    "pass the data set 2" in { ... }
    "pass the data set 3" in { ... }
  }
}

examplesMustPassFor(algo1)
examplesMustPassFor(algo2)
examplesMustPassFor(algo3)

我想提的另一个重点是specs项目现在已被specs2取代,因此如果您刚刚开始编写规范,您可能需要查看这个项目。

当然,如果您愿意,可以毫不犹豫地通过邮件列表中的代码示例提出更具体的问题。

埃里克。

于 2011-05-03T12:45:47.357 回答