对于对象图,我们在单元测试中使用org.unitils.reflectionassert.ReflectionAssert.assertReflectionEquals
。图ale中的某些对象还可以在没有公共设置器的情况下休眠实体。
是否有一种方法可以使用MockK为这些实体创建模拟/存根,其属性可以通过反射实用程序看到?
我在下面附加了简化的测试,应该会失败,但是不会。原因是当通过反射进行比较时,两个模拟都被视为相等。 解决此问题的方法是使用反射创建存根。如果我们可以使用MockK创建它们,那就太好了。
class Payment(currency: CurrencyEntity)
class ReflectionEqualsTest {
private val currencyUsd = mockk<CurrencyEntity>().apply { every { isoCode } returns "USD" }
private val currencyEur = mockk<CurrencyEntity>().apply { every { isoCode } returns "EUR" }
@Test
fun reflectionEqualsTest() {
ReflectionAssert.assertReflectionEquals(Payment(currencyUsd), Payment(currencyEur))
}
}