【发布时间】:2014-08-28 15:28:27
【问题描述】:
我正在测试使用库对象的 SortedSet 的类的行为(常规类不是接口,所以我引入了 cglib-nodep)。当排序集有多个对象时,我需要测试类的行为。 Library 对象已以这种方式模拟:
Library library = Mock()
Library library2 = Mock()
然后,我创建一个 TreeSet:
def libraries = [library, library2] as TreeSet
并调用被测系统方法:
sut.doStuff(libraries).
当我调试这个测试时,我看到库是一个只有一个元素的 SortedSet。这似乎是 Spock 处理平等方式的结果,因为:
def "equality test"() {
expect:
library == library2
}
当我运行测试时通过。有没有办法解决这种行为?
编辑:将 = 更改为 == 因为我无法输入
【问题讨论】:
-
library = library2已通过,因为它是分配而非比较? -
是的,很抱歉,只是打字错误,我实际上并没有在测试中使用作业
-
你试过
library.is library2吗?不确定Library是什么以及如何实现equals()和hashCode()或compareTo()。
标签: unit-testing groovy spock