在 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。希望这会有所帮助。
我是 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。希望这会有所帮助。