【发布时间】:2019-11-13 22:46:39
【问题描述】:
如何向org.scalatest.Assertions.assert 提供Position 以便它报告一个不同的位置而不是默认位置?
我的问题是我有一个父测试类和一个子测试类。子测试类在父类中使用断言方法。这会导致测试失败消息指向父方法而不是子方法。
例如,我有一个父测试类:
abstract class ParentSpec[A <: TestSubject] extends FunSuite {
protected def checkId(underTest: => A, expectedId: Int): Assertion = {
assert(underTest.id == expectedId)
}
}
还有一个子测试类:
class FooSpec extends ParentSpec[Foo] {
test("check id") {
checkId(Foo(1, 2, 3), 999) // this fails
}
}
如果测试失败,则断言报告问题来自ParentSpec.scala。如何将其更改为 FooSpec.scala?
我注意到assert 包含一个隐含的Position
def assert(condition: Boolean)(implicit prettifier: Prettifier, pos: source.Position): Assertion
我可以提供职位吗?
【问题讨论】: