package com.lijun.mockito;
import static org.mockito.Mockito.*;
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
/*******************************
* 对于final类,匿名类和JAVA基本类型是无法进行Mock的
* 对于static和final修饰的方法是无法进行设定的
*
*/
public class MockitoSampleTest {
// 对接口进行模拟
UserService mockUserService = mock(UserService.class);
// 对类进行模拟
UserServiceImpl mockServiceImpl = mock(UserServiceImpl.class);
@Mock
User mockUser;
@Before
public void initMocks() {
// 初始化当前测试类所有@Mock注解模拟对象
MockitoAnnotations.initMocks(this);
}
// 模拟接口UserService测试
@Test
public void testMockInterface() {
// 对方法设定返回值
when(mockUserService.findUserByUserName("tom")).thenReturn(
new User("tom", "1234"));
// 对方法设定返回值
doReturn(true).when(mockUserService).hasMatchUser("tom", "1234");
// 对void方法进行方法预期设定
User u = new User("John", "1234");
doNothing().when(mockUserService).registerUser(u);
// 执行方法调用
User user = mockUserService.findUserByUserName("tom");
boolean isMatch = mockUserService.hasMatchUser("tom", "1234");
mockUserService.registerUser(u);
assertNotNull(user);
assertEquals(user.getUserName(), "tom");
assertEquals(isMatch, true);
}
@Test
public void testMockClass() {
// 对方法设定返回值
when(mockServiceImpl.findUserByUserName("tom")).thenReturn(
new User("tom", "1234"));
doReturn(true).when(mockServiceImpl).hasMatchUser("tom", "1234");
User user = mockServiceImpl.findUserByUserName("tom");
boolean isMatch = mockServiceImpl.hasMatchUser("tom", "1234");
assertNotNull(user);
assertEquals(user.getUserName(), "tom");
assertEquals(isMatch, true);
}
@Test
public void testMockUser() {
when(mockUser.getUserName()).thenReturn("tom");
assertEquals(mockUser.getUserName(), "tom");
}
}
分享到:
相关推荐
mock对象
Mock对象教程.pdf
Mock counterfeiter - 一个工具用于在Go中生成自容器,类型安全的测试Mock对象
使用mock时,需要对应的jar包,这里是EasyMock(EaskMock 3.1) 是一套用于通过简单的方法对于给定的接口生成 Mock 对象的类库。它提供对接口的模拟,能够通过录制、回放、检查三步来完成大体的测试过程,可以验证...
结论下载参考资料本文主要讨论如何利用配置文件对Mock对象以及它的行为进行描述,从而分离测试数据和代码,创建高效、灵活的测试用例。同时,本文给出了一套基于开源项目EasyMock的实现,并通过一个示例来说明如何...
Mock模拟测试,定义、好处、关键点、Mockito使用、Mock 对象的行为验证、Spy 对象验证等
Python mock的基本使用介绍。Mock即模拟的意思。在Python中,提供了基于单元测试的Mock模块,它的主要作用是使用mock对象替代掉指定的Python对象,以达到模拟对象功能的行为。
官方解释:Mock是Python中一个用于支持单元测试的库,它的主要功能是使用mock对象替代掉指定的Python对象,以达到模拟对象的行为 二、为什么要用mock? 举例: 假设你开发一个项目,里面包含了一个登录模块,登录...
Classes contained in spring-mock.jar: org.springframework.mock.jndi.ExpectedLookupTemplate.class org.springframework.mock.jndi.SimpleNamingContext.class org.springframework.mock.jndi....
mock httpclient 初步,待完善
同时,Mockito还会记录下调用这些模拟方法的参数和调用顺序,从而可以校验出这个Mock对象是否被正确地按期望的顺序和参数进行了调用。这在某些情况下尤其重要,比如当我们需要确认某个方法是否被调用,以及它的参数...
mock练习
Google_Mock_启蒙篇 当你写一个原型戒是测试的时候,直接去依赖真实的对象通常是丌可行的戒是丌明智的。 Mock 对象实现不真实对象有着相同的接口,但你可以去指定 Mock 对象在运行时它做什么
4.2.4 使用it来访问mock对象本身 4.3 基于行为的jmockit测试 4.3.1 Mock对象 4.3.2 mockit.Expectations 4.3.3 声明和使用mock对象 4.4 Mock对象的约束 4.4.1 调用次数约束 4.4.2 参数约束 4.4.3 返回值的指定 4.5 ...
简单的mockServer、模拟后台生成数据、启动后像后台一样直接调用接口
mock
EasyMock 是一个用于生成模拟对象(Mock Object)的类库,主要用于单元测试。它提供了一种简单的方法来模拟接口或类的行为,使得在测试中可以模拟真实环境中的对象。 EasyMock 的主要特点包括: 简单易用:使用 ...
ApiMock操作文档
如何使Singletons的行为可以被覆盖并且允许模拟对象。