Mockito mock

Mockito Mock是什么

Mockito 可以mock 一个接口或类,创建一个类或接口的mock实例是指这个mock实例拥有这个类或接口的所有方法,并且给这些方法以最基本的实现

  •  如果方法返回值是void,mock什么都不做
  •   如果方法返回值是void,mock默认返回null或0等基本类型的值

使用mock()方法创建一个类或接口的mock实例

import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import java.util.List;
import org.junit.Test;

public class MockitoTest {

    @Test
    public void test() throws Exception {

        // 使用mock()方法 创建List接口的mock实例
        List<String> list = mock(List.class);

        list.add("xx");

        verify(list, times(1)).add("xx");
        verify(list, times(0)).add("y");
    }
}

使用@MockBean注解创建一个类或接口的mock实例

在SpringBoot Test中,@MockBean注解可以创建接口的mock实例,添加mock对象到 Spring ApplicationContext中。例如StudentServiceImpl类需要依赖StudentRepository接口,那么在测试StudentServiceImpl时,就可以把StudentRepository接口Mock掉,这个被Mock的StudentRepository接口实例就拥有StudentRepository接口的所有方法,并且给这些方法以最基本的实现

  • 如果方法返回值是void,mock什么都不做
  • 如果方法返回值是void,mock默认返回null或0等基本类型的值
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class StudentServiceImpl implements StudentService {

    @Autowired
    private StudentRepository studentRepository;


}

在它的测试类中,可以使用Mockito的mockbean功能

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;


//被测试类
@SpringBootTest(classes = StudentServiceImpl.class)
class StudentServiceImplTest {

    @Autowired
    private StudentServiceImpl studentService; // 注入被测试列

    @MockBean
    private StudentRepository studentRepository; // Mock被测试类的依赖

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Mockito对PageHelper进行模拟(mock)的步骤如下: 1. 首先,需要导入Mockito库。 2. 创建一个MockedStatic对象,用于模拟PageHelper类的静态方法。 3. 使用mockStatic方法来创建MockedStatic对象,传入PageHelper.class作为参数。 4. 使用when和thenReturn方法来定义模拟的行为。例如,你可以使用when().thenReturn()来模拟PageHelper.startPage方法的返回值。 5. 进行你的测试代码,包括调用需要使用模拟的PageHelper方法的代码。 6. 最后,记得在测试完成后,使用MockedStatic对象的close方法关闭模拟。 下面是一个示例代码,演示了如何使用Mockito对PageHelper进行模拟(mock): ``` import org.junit.Test; import org.mockito.MockedStatic; import static org.mockito.Mockito.*; public class PageHelperMockTest { @Test public void testPageHelperMock() { // 创建模拟对象 MockedStatic<PageHelper> pageHelperMock = mockStatic(PageHelper.class); // 定义模拟的行为 pageHelperMock.when(() -> PageHelper.startPage(anyInt(), anyInt())).thenReturn(planPage); // 进行你的测试代码 // 关闭模拟 pageHelperMock.close(); } } ``` 在这个示例中,我们创建了一个MockedStatic对象pageHelperMock,用于模拟PageHelper类的静态方法。然后使用when和thenReturn方法来定义模拟的行为,模拟了PageHelper.startPage方法的返回值为planPage。最后,在测试完成后,我们使用pageHelperMock的close方法关闭模拟。 请注意,这只是一个简单的示例,实际使用时需要根据具体情况来定义模拟的行为和进行相应的测试。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Mockito3.8 如何mock静态方法 (如何mock PageHelper)](https://blog.csdn.net/weixin_43410352/article/details/118799839)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值