当前位置: 首页 > 知识库问答 >
问题:

我们是否需要初始化@mock对象

贝嘉泽
2023-03-14

我正在使用mockito作为junit。在创建对象的模拟时,我有疑问。我有一个名为DBConnect的类。我需要数据库属性,如dbname、凭据等。PatientDetails使用这个类。现在,当我为PatientDetails编写junit时。所以我使用以下代码。

 @RunWith(MockitoJUnitRunner.class)  
   public class PatientDetailsTest {
      @Mock
      DBConnect dbConnect

      @Before
      public void setUp()
      {

      PatientDetails testClass = new PatientDetails();
      testClass.setDBConnect(dbConnect);
      }
   }

用这个我不能得到正确的结果。

共有1个答案

邹英光
2023-03-14

我觉得你的代码很好。我稍微扩展了它以包含一个测试,这样它就可以运行了。这很好:

@RunWith(MockitoJUnitRunner.class)
public class PatientDetailsTest {
    @Mock
    DBConnect dbConnect;

    @Before
    public void setUp() {
        when(dbConnect.sayHello()).thenReturn("works for me");
        PatientDetails testClass = new PatientDetails();
        testClass.setDBConnect(dbConnect);
    }        

    @Test
    public void testname() throws Exception {
        System.out.println("foo");
    }

    private static interface DBConnect {
        String sayHello();
    }

    private static class PatientDetails {
        public void setDBConnect(DBConnect dbConnect) {
            System.out.println(dbConnect.sayHello());
        }
    }
}

输出:

works for me
foo
 类似资料:
  • 我将firebase添加到我的android项目中,以使用firebase云消息传递。我按照文档进行了操作,但没有找到调用的任何说明。 我的应用程序工作很好,除了有一次它崩溃了以下错误。 当我搜索错误时,给出的解决方案是在启动时调用。 我想知道这是否真的有必要,因为文档没有提到它,我的应用程序在没有它的情况下工作(大部分)很好。 有人知道调用是否真的有必要,还有什么可能导致我上面提到的错误吗? 下

  • 问题内容: 我们的团队正在使用SecureRandom生成密钥对列表(将SecureRandom传递给KeyPairGenerator)。对于以下两种选择中的哪一种,我们无法达成共识: 每次需要生成密钥对时都创建一个新实例 初始化静态实例并将其用于所有密钥对 通常哪种方法更好, 为什么 ? 添加:我的直觉是第二种选择更安全。但我唯一的论点是基于以下假设的理论攻击:假随机性是从当前时间戳派生的:某人

  • 假设我在程序中有一段代码: 有人建议我在调用消息之前检查消息的空值。getUserId()。 检查null有两种方法:第一种: 第二种方式: 我的问题是: 哪种方式对null检查更好?返回还是抛出异常? 为什么我们在这里需要空检查?如果我们不这样做,那么无论如何都会抛出。

  • C++标准在3.3.2“声明点”中包含了一个半著名的“令人惊讶的”名称查找示例: 这会用它自己初始化,它(作为一个基元类型)是未初始化的,因此具有一个不确定的值(假设它是一个自动变量)。

  • print语句会导致以下编译时错误, 局部变量f可能尚未初始化 如果Java中的原语已经有一个默认值(float=0.0f),为什么我需要定义一个呢? 所以,这是有效的 谢谢大家!

  • 问题内容: 在一对多JPA关联中,将空关系初始化为空集合是否被视为最佳实践?例如。 在上面的示例中,最好将默认值定义为空吗?优缺点都有什么? 问题答案: JPA本身并不关心集合是否已初始化。当使用JPA从数据库中检索订单时,JPA将 始终 返回带有非空OrderLine列表的Order。 原因:因为一个订单可以有0行,1行或N行,并且最好用一个空的,一个大小或N个大小的集合进行建模。如果集合为空,