检查模拟对象的类类型

2024-03-02

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

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

Class<AdapterEvent> clazz = AdapterEvent.class;
AdapterEvent adapterEvent = Mockito.mock(AdapterEvent.class);
    
Assert.assertTrue(adapterEvent.getClass().equals(clazz));
Assert.assertTrue(adapterEvent.getClass().isAssignableFrom(clazz));

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


你的第一个断言将never是真的 - Mockito 模拟是一个全新的类,所以一个简单的equals()永远不会工作。顺便说一句,对于这样的测试,如果您使用,您将收到更有用的失败消息Assert.assertEquals(),其中第一个参数是预期结果;例如。:

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

你的第二个断言would是正确的,但你混淆了方向isAssignableFrom()(很容易做到,JavaDoc 非常令人困惑)- 翻转它,你就很幸运:

Assert.assertTrue(clazz.isAssignableFrom(adapterEvent.getClass()));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查模拟对象的类类型 的相关文章

  • Mockito.anyString() 在 Kotlin 中因 NPE 崩溃

    我正在使用浓缩咖啡 我想为内容解析器创建一个模拟响应 当我使用时 when context activity contentResolver query ArgumentMatchers isA Uri class java Argumen
  • Groovy 中没有参数的模拟静态方法

    我需要模拟一个静态方法 我正在使用 EMC 方法 描述于使用 groovy 模拟静态方法 http groovy codehaus org Mocking Static Methods using Groovy 像这样 TestDaemon
  • 如何在 Jest 中为无服务器 Nodejs Lambda 模拟 AWS DynamoDB?

    我写了一个 lambda 如下 处理程序 js const aws require aws sdk const dynamoDb new aws DynamoDB DocumentClient const testHandler async
  • 如何动态覆盖 Angular2 可注入服务?

    我有一个可注入服务 HttpRequestService 当没有服务器时我想用 MockHttpRequestService 替换它 因为我正在开发模式下运行 npm start 这个 MockHttpRequestService 将发回非
  • 断言某个方法仅被调用一次

    我想断言一个方法只被调用一次 我正在使用 RhinoMocks 3 5 这是我认为可行的 Test public void just once var key id of something var source MockRepositor
  • 检查注释是否属于特定类型

    我正在使用反射来查看附加到类属性的注释是否属于特定类型 目前我正在做的 if javax validation Valid equals annotation annotationType getName 这让我觉得有点麻烦 因为它依赖于一
  • 如何模拟嵌套函数?

    我想模拟特定函数中的一些嵌套函数 tools py def cpu count def get cpu quota return int load sys fs cgroup cpu cpu cfs quota us def get cpu
  • 测试 powermock 模拟客户端调用的 http 服务器超时

    我需要为 connectTimeout 和 SocketTimeout 异常编写测试用例 我使用 powerMock 创建模拟对象 下面是我的代码 但是我的模拟对象出现空指针异常 任何帮助表示赞赏 package com util impo
  • Moq-ing 类或接口有什么区别?

    我一直在使用moq http code google com p moq 在我的单元测试中模拟对象 我在关于最小起订量的网站上看到它能够模拟类和接口 有一天 我与我的一位同事进行了讨论 他们表示没有理由模拟类 我应该只模拟接口 我对此并没有
  • 使用 Mockito 对 Runnable 进行单元测试

    我有这样的代码 我想为其编写单元测试 public class TestClass private final Executor executor private final Handler handler TestClass Execut
  • 如何在android中对Log.e进行单元测试?

    我需要执行单元测试 在应用程序中发生特定情况时 我需要检查是否记录错误消息 try do something catch ClassCastException IndexOutOfBoundsException e Log e INFOTA
  • 验证在子类上调用此方法时是否调用了重写的超类方法

    我将用这个例子来展示我的问题 我有一个带有方法的类foo 该类有一个重写此方法的子类 子类的方法调用超类的方法 我可以验证一下吗 我不想测试什么foo在超类中确实如此 我只需要验证它是否被调用 我知道重构可以有所帮助 优先考虑组合而不是继承
  • 有人成功用 Robolectric 模拟 HttpRequests 吗?

    我刚刚开始使用 Robolectric 模拟大多数 Android 类似乎工作正常 但是当我的测试类尝试创建 DefaultHttpClient 时 它会收到可怕的 Stub 错误 被测试的类在这一行失败 HttpClient httpcl
  • 在上下文中模拟计时,以使用 auto_now_add=True 的字段 DateTimeField 创建模型

    我想模拟时间以便能够set特定时间到某个类型的字段DateTimeField with auto now add True在我的测试期间 例如 class MyModel created at models DateTimeField au
  • JUnit 使用 Mockito 测试异步方法

    我已经使用 Spring Framework 版本 5 0 5 RELEASE 在 Java 1 8 类中实现了异步方法 public class ClassToBeTested Autowired private MyComponent
  • 查找方法不适用于 EF6.1 模拟

    我已经使用这些 msdn 指南设置了模拟 使用模拟框架进行测试 EF6 及以上 http msdn microsoft com en us data dn314429 var bsAc db BusAcnts FirstOrDefault
  • FakeItEasy 代理方法调用实际实现

    我正在尝试将对假对象的调用代理到实际的实现 这样做的原因是我希望能够使用 Machine Specifications 的 WasToldTo 和 WhenToldTo 它们仅适用于接口类型的伪造 因此 我正在执行以下操作来代理对我的真实对
  • Mockito mockStatic 无法解析符号

    我正在使用 Spring Boot 并在单元测试中 我试图模拟Files delete myFile toPath method 为此 我尝试使用Mockito mockStatic 方法 但是当我尝试使用它时 我的 IDE Intelli
  • 是否可以存根实体框架上下文和类来测试数据访问层?

    我熟悉用于测试 ASP NET MVC 应用程序中的控制器和业务逻辑的技术 我们的应用程序中的数据访问集中在松散耦合的特殊服务中 使用接口并通过实体框架与实际数据库一起使用 然而 随着 DAL 变得越来越复杂 隐藏数据库实现细节并为应用程序
  • 如何用 Jest 模拟 Sequelize?

    我正在尝试为调用 Sequelize 来创建数据库的代码编写单元测试 我一生都无法弄清楚如何模拟对 Sequelize 的调用 以便我可以断言他们已经正确创建了数据库表 我点击 Sequelize 的代码如下 import Sequeliz

随机推荐