使用MockK创建通过反射可见的存根

时间:2018-09-25 11:38:14

标签: mockk

对于对象图,我们在单元测试中使用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))
    }
}

0 个答案:

没有答案