java-Mocktio when()

mock -模拟对象技术

 mocktio -用于单元测试的mock框架

目的和作用:模拟一些在应用中不容易构造或者比较复杂的对象,从而把测试与测试边界以外的对象隔离开


Mockito实用说明

①    when(mock.someMethod()).thenReturn(value):设定mock对象某个方法调用时的返回值。可以连续设定返回值,即when(mock.someMethod()).thenReturn(value1).thenReturn(value2),第一次调用时返回value1,第二次返回value2。也可以表示为如下:when(mock.someMethod()).thenReturn(value1,value2)。

②     调用以上方法时抛出异常: when(mock.someMethod()).thenThrow(new RuntimeException());

③    另一种stubbing语法:

doReturn(value).when(mock.someMethod())

doThrow(new RuntimeException()).when(mock.someMethod())

④    对void方法进行方法预期设定只能用如下语法:

doNothing().when(mock.someMethod())

doThrow(new RuntimeException()).when(mock.someMethod())

doNothing().doThrow(new RuntimeException()).when(mock.someMethod())

⑤     方法的参数可以使用参数模拟器,可以将anyInt()传入任何参数为int的方法,即anyInt匹配任何int类型的参数,anyString()匹配任何字符串,anySet()匹配任何Set。

⑥    Mock对象只能调用stubbed方法,调用不了它真实的方法,但是Mockito可以用spy来监控一个真实对象,这样既可以stubbing这个对象的方法让它返回我们的期望值,又可以使得对其他方法调用时将会调用它的真实方法。

⑦    Mockito会自动记录自己的交互行为,可以用verify(…).methodXxx(…)语法来验证方法Xxx是否按照预期进行了调用。

(1)    验证调用次数:verify(mock,times(n)).someMethod(argument),n为被调用的次数,如果超过或少于n都算失败。除了times(n),还有never(),atLease(n),atMost(n)。

(2)    验证超时:verify(mock, timeout(100)).someMethod();

JUnit中的注解

@BeforeClass:针对所有测试,只执行一次,且必须为static void

@Before:初始化方法,执行当前测试类的每个测试方法前执行。

@Test:测试方法,在这里可以测试期望异常和超时时间

@After:释放资源,执行当前测试类的每个测试方法后执行

@AfterClass:针对所有测试,只执行一次,且必须为static void

@Ignore:忽略的测试方法(只在测试类的时候生效,单独执行该测试方法无效)

@RunWith:可以更改测试运行器 ,缺省值 org.junit.runner.Runner

一个单元测试类执行顺序为:

@BeforeClass –> @Before –> @Test –> @After –> @AfterClass

每一个测试方法的调用顺序为:

@Before –> @Test –> @After

————————————————

原文链接:https://blog.csdn.net/qq_38023253/article/details/89671107

你可能感兴趣的:(java-Mocktio when())