gpt4 book ai didi

mocking - 检查模拟对象的类类型

转载 作者:行者123 更新时间:2023-12-04 03:34:13 24 4
gpt4 key购买 nike

目前,我正在测试获取对象的方法,并检查该对象是否是作为实例变量存储的类的实例。到目前为止没有问题。

但是在测试中,我必须使用模拟,这些模拟之一是传递给该方法的对象。而现在,它变得棘手。让我们看一下代码(我在此测试中总结了代码):

    Class<AdapterEvent> clazz = AdapterEvent.class;
AdapterEvent adapterEvent = Mockito.mock(AdapterEvent.class);

Assert.assertTrue(adapterEvent.getClass().equals(clazz));
Assert.assertTrue(adapterEvent.getClass().isAssignableFrom(clazz));

好吧,这个测试实际上失败了。有谁知道为什么吗?有人知道我仍然可以通过在测试中使用模拟来解决这个问题吗?是否有另一种将对象与特定类进行比较的方法。

非常感谢你的帮助。

此致

杰拉多

最佳答案

您的第一个断言永远不会成立-Mockito模拟是一个全新的类,因此简单的equals()将永远无法工作。顺便说一下,对于像这样的测试,如果您使用Assert.assertEquals(),您将收到一条更有用的失败消息,其中第一个参数是预期的结果。例如。:

Assert.assertEquals(clazz, adapterEvent.getClass()); 

您的第二个断言是正确的,但是您混淆了 isAssignableFrom()的方向(轻松完成,JavaDoc令人困惑)-将其翻转即可,您很高兴:
Assert.assertTrue(clazz.isAssignableFrom(adapterEvent.getClass()));

关于mocking - 检查模拟对象的类类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6264872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com