【问题标题】:Scala JUnit assertSameScala JUnit assertSame
【发布时间】:2014-12-08 21:31:38
【问题描述】:

在 Scala JUnit 中,如何断言内存引用相等?看来使用:

@Test def someTest() = {
  obj1: MyClass = getObject()
  obj2: MyClass = getObject()
  assertSame(obj1, obj2)
}

比较两个对象的内存引用,而是调用MyClass类的equals()方法。

【问题讨论】:

  • 这应该可以。你确定它不起作用? assertSame(128, 128) 是做什么的?
  • 它仍然调用 Int 类的 equals 方法。我想检查实例的内存引用,调用类equals()方法。
  • 你如何确认这一点?

标签: scala junit equality


【解决方案1】:

我想你在找assertEq,看看the documentation for SUnit's Assert

assertEq(obj1, obj2)

或者,您可以在坚持使用 JUnit 和 Scalatest 的同时使用更详细的内容。 (docs)

assert(obj1 eq obj2, "Some meaningful message")

【讨论】:

  • 我正在编辑的代码库在 Scala 中使用 JUnit 而不是 SUnit。我想我可以在测试套件中同时使用两者,或者尝试完全切换到 SUnit。
  • @terminex9 一个简单的 Scalatest assert(obj1 eq obj2, "Object references not equal") 对你有用吗?
  • 没想到!这似乎对我想要的有用!
  • @terminex9 顺便说一句,如果您使用来自org.junit.AssertassertSame,它实际上应该可以解决问题。您如何验证对象引用实际上是相同/不同的?
猜你喜欢
  • 1970-01-01
  • 2011-12-12
  • 2012-10-28
  • 2012-05-02
  • 2019-06-23
  • 1970-01-01
  • 1970-01-01
  • 2018-01-24
  • 2014-06-03
相关资源
最近更新 更多