作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试学习如何在 ScalaTest 中使用夹具设置和拆卸。我一直在尝试的一个例子如下:
import org.scalatest._
import scala.collection.mutable
class SampleTest extends FlatSpec with BeforeAndAfter with Matchers{
before {
// Setup code
}
after {
// Teardown code
}
"A Stack" should "pop values in last-in-first-out order" in {
val stack = new mutable.Stack[Int]
stack.push(1)
stack.push(2)
stack.pop() should be (2)
stack.pop() should be (1)
}
it should "throw NoSuchElementException if an empty stack is popped" in {
val emptyStack = new mutable.Stack[Int]
a [NoSuchElementException] should be thrownBy {
emptyStack.pop()
}
}
}
问题在于根本没有执行之前或之后的 block 。我觉得我完全遵循了项目文档中的说明 - 我做错了什么?
最佳答案
我试过你的例子,它运行良好:
import org.scalatest._
import scala.collection.mutable
class SampleSpec extends FlatSpec with BeforeAndAfter with Matchers{
before {
info("Setup code")
}
after {
info("Teardown code")
}
"A Stack" should "pop values in last-in-first-out order" in {
val stack = new mutable.Stack[Int]
stack.push(1)
stack.push(2)
stack.pop() should be (2)
stack.pop() should be (1)
}
it should "throw NoSuchElementException if an empty stack is popped" in {
val emptyStack = new mutable.Stack[Int]
a [NoSuchElementException] should be thrownBy {
emptyStack.pop()
}
}
}
将它粘贴到 REPL 中可以得到:
scala> new SampleSpec execute
SampleSpec:
A Stack
+ Setup code
- should pop values in last-in-first-out order
+ Teardown code
+ Setup code
- should throw NoSuchElementException if an empty stack is popped
+ Teardown code
但是,鉴于您评论说需要说“override def”,我想我知道发生了什么。我认为您的 IDE 可能已将您的代码完成为 BeforeAndAfterEach,即使您想要 BeforeAndAfter。所以你混合了 BeforeAndAfterEach,这确实需要 :override def before...”但是正在查看 BeforeAndAfter 的文档。你能仔细检查一下,看看是否是问题所在?
关于ScalaTest:BeforeAndAfter 未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25777294/
我正在尝试学习如何在 ScalaTest 中使用夹具设置和拆卸。我一直在尝试的一个例子如下: import org.scalatest._ import scala.collection.mutabl
考虑以下用于 BeforeAndAfter 和 BeforeAndAfterAll 的最小可行自包含测试用例: import org.scalatest.{BeforeAndAfter, Before
考虑以下用于 BeforeAndAfter 和 BeforeAndAfterAll 的最小可行自包含测试用例: import org.scalatest.{BeforeAndAfter, Before
我是一名优秀的程序员,十分优秀!