在 scalatest class 中实现抽象方法

Implement abstract method inside of scalatest class

我是 scalatest 框架的新手。我有一个特征,它有 2 个抽象方法,我需要在测试中实现它们 class.

trait PropsTrait {

def set()

def break()

}

最大规模的 class 看起来像这样

class fooTest extends WordSpec with PropsTrait with GivenWhenThen with Matchers {


  override def set(): Unit = {
    println("Url")
  }


  "The helloWorld method" when {
    "called with a specific Name " should {
      "return the respective Value as a String" in {

       val url = "test"
       url should be("test")
       }
     }
   }


  override def break(): Unit = {
    println("cleanUp")
  }
}

我没有看到 Url 被打印出来,换句话说,我没有看到覆盖方法 def set() 被调用。

我错过了什么?所有被执行的都是 WordSpec。 任何帮助表示赞赏。谢谢!

我没有看到对您的函数设置或中断的调用。你可以做的是,在你的测试 class 中创建一个特征对象,而不是混合它。然后你可以这样做:

val obj = new PropsTrait { override def set = {body} override def break = {body} }

然后用这个对象来测试你trait的方法

如果您想遵循自己的方法,请调用 set。希望这会有所帮助。