将函数转发给 ScalaTest 宏

Forward function to a ScalaTest macro

我正在将一些 QUnit Javascript 测试转换为 Scala。我的测试如下所示:

class XXX extends MyTests {
  test("equals", () => {
    val a = new XXX(x)
    val b = new XXX(y)
    ok(a.x != b.x, "Passed!")
    ok(a.y != b.y, "Passed!")
    ok(!a.equals(b), "Passed!")
    ok(!b.equals(a), "Passed!")
    a.copy(b)
    ok(a.x == b.x, "Passed!")
    ok(a.y == b.y, "Passed!")
    ok(a.equals(b), "Passed!")
    ok(b.equals(a), "Passed!")
  })
}

MyTests 是我从 ScalaTest 派生的特征 FunSuite

我可以在代码中用 assert 替换 ok,或者我可以在 MyTests 中放置以下内容:

def ok(ok: Boolean, message: String) = assert(ok, message)

第一个解决方案导致更好的测试,因为直接使用 assert 意味着 ScalaTest 使用 assert 的增强宏实现。第二种解决方案的工作要少得多,因为我不必在代码中替换 ok

有没有什么方法可以以不同于 FunSuite 的名称导入 assert 或以其他方式将我的实现转发给 ScalaTest 宏,以便 ok 的行为与 assert?

import org.scalatest.Assertions.{assert => ok}