[scala断言专栏]--为项目定义基类

英文原文:

http://www.scalatest.org/user_guide/defining_base_classes


ScalaTest是一个测试工具包:它由重点轻量级的特征组成,您可以混合在一起来解决手头的问题。这种方法最大限度地减少了命名和隐含冲突的潜力,并有助于加快编译速度。

我们建议您为您的项目创建抽象基类,而不是通过将相同的特征混合在一起重复编码,将您最常使用的功能混合在一起。例如,您可能UnitSpec为单元测试创建一个类(不是特征,用于更快速的编译),如下所示:

package com.mycompany.myproject

import org.scalatest._

abstract class UnitSpec extends FlatSpec with Matchers with
  OptionValues with Inside with Inspectors

然后,您可以使用自定义基类为您的项目编写单元测试,如下所示:

package com.mycompany.myproject

import org.scalatest._

class MySpec extends UnitSpec {
  // Your tests here
 "A Stack" should "pop values in last-in-first-out order" in {
    val stack = new Stack[Int]
    info("start ......")
    stack.push(1)
    stack.push(2)
    info(stack.elems.take(0).toString())

    assert(stack.pop() === 2)
    assert(stack.pop() === 1)
  }
}


大多数项目最终都有多个基类,每个类都集中在不同类型的测试上。您可能需要一个需要数据库(可能命名DbSpec)的集成测试的基类,另一个用于需要一个actor系统(可能命名的ActorSysSpec)的集成测试,另一个需要数据库和一个actor系统(可能命名DbActorSysSpec)的集成测试的基础类),等等。要开始使用,您只需创建一个用于单元测试的基类。

请注意:

在其余的用户指南中,我们不会扩展UnitSpec。相反,我们展示所有涉及的特征,以便清楚所使用的内容,并使每个示例独立工作。








你可能感兴趣的:(测试工具,scala,Scala)