📜  Mokito“具有以下具有不同参数的存根”-无论(1)

📅  最后修改于: 2023-12-03 15:02:59.797000             🧑  作者: Mango

Mokito的不同参数的存根

在Java开发中,单元测试是非常重要的一环。为了让单元测试更加方便和简单,我们可以使用Mockito库进行虚拟对象的创建和存根。

在使用Mockito进行存根时,不同的参数可以使得存根更加灵活和具有定制性。下面是Mockito的不同参数的存根。

1. 普通参数的存根

Mockito的最基本的存根方法,是对具有普通参数的方法进行存根,这种方法不需要任何特殊的语法,只需要指定方法名称和参数值即可。

// 创建虚拟对象
List<String> list = Mockito.mock(List.class);

// 普通参数的存根
Mockito.when(list.get(0)).thenReturn("Hello");

// 输出存根后的结果
System.out.println(list.get(0)); // 输出 Hello

这段代码的含义是:创建一个List类型的虚拟对象,并对其get方法进行存根,当调用get方法时,返回值为字符串"Hello"。

2. 匹配器参数的存根

为了让存根更加灵活,Mockito还提供了匹配器参数的存根方法。通过使用匹配器,我们可以对方法参数进行更加精细的控制和定制。

// 匹配器参数的存根
Mockito.when(list.get(Mockito.anyInt())).thenReturn("World");

// 输出存根后的结果
System.out.println(list.get(1)); // 输出 World
System.out.println(list.get(2)); // 输出 World

这段代码的含义是:对List的get方法进行存根,无论传入任何整数类型的参数,返回值都为字符串"World"。

3. 抛出异常参数的存根

有时候我们需要对方法调用抛出异常的情况进行存根,这时可以使用Mockito的抛出异常参数的存根方法。

// 抛出异常参数的存根
Mockito.when(list.get(Mockito.anyInt())).thenThrow(new RuntimeException("Out of Bounds"));

// 在调用get方法时抛出异常
try {
    System.out.println(list.get(1));
} catch (Exception e) {
    e.printStackTrace();
}

这段代码的含义是:对List的get方法进行存根,无论传入任何整数类型的参数,都会抛出RuntimeException异常,异常信息为"Out of Bounds"。

总结

Mockito的不同参数的存根方法,让我们可以更加方便和灵活地进行单元测试。无论是普通参数的存根、匹配器参数的存根、还是抛出异常参数的存根,Mockito都提供了相应的语法和API。我们可以根据需要选择不同的存根方法,让单元测试变得更加简单和可靠。