91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中PowerMockito模擬方法內new對象實例

發布時間:2021-06-28 17:26:16 來源:億速云 閱讀:1049 作者:chen 欄目:大數據

本篇內容主要講解“java中PowerMockito模擬方法內new對象實例”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“java中PowerMockito模擬方法內new對象實例”吧!

在做單元測試中有時候需要對方法內new出來的對象進行隔離,這是我們需要使用PowerMockito。

  1. 添加依賴

<dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-module-junit4</artifactId>
            <version>1.7.4</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-api-mockito</artifactId>
            <version>1.7.4</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <version>1.10.19</version>
            <scope>test</scope>
        </dependency>

注意:版本要對應一致,不同的版本可能出現啟動失敗!

  1. 被測試類

@Slf4j
@Component
public class UserService {
	@Autowired
	private UserMapper userMapper;
	
	public User userCreate(String name, String password) throws BusinessException {
		User user = userMapper.query(name, password);
		if(user == null){
			user = new User();
			user.setName(name);
			user.setPassword(password);
			user.setGroup(1);
			user.setCreateTime(new Date());
			TokenApi tokenApi = new TokenApi();//測試時需要隔離此類,此類依賴其他服務!
			
			try {
				user.setToken(tokenApi.getToken());
			} catch (Exception e) {
				throw new BusinessException("-2","獲取token失敗");
			}
			try {
				userMapper.create(user);
			} catch (Exception e) {
				throw new BusinessException("-1","系統異常");
			}
			
		}
		return user;
	}
}
  1. 測試類

@RunWith(PowerMockRunner.class)
@PrepareForTest({UserService.class})//此注解內配置的是需要mock的new對象代碼所在的類
public class UserServiceTest {

	@InjectMocks
	private UserService userService;
	@Mock
	private UserMapper userMapper;
	private TokenApi tokenApi;
	
	@Test
	public void userCreate(){
		
		String name = "xiaoming";
		String password = "000000";
		when(userMapper.query(name, password)).thenReturn(null);
		tokenApi = PowerMockito.mock(TokenApi.class);
		try {
			PowerMockito.whenNew(TokenApi.class).withNoArguments().thenReturn(tokenApi);
		} catch (Exception e) {
			e.printStackTrace();
		}
		PowerMockito.when(tokenApi.getToken()).thenReturn("11111111");
		User user = userService.userCreate(name, password);
		assertEquals(name,user.getName);
		assertEquals("11111111",user.getToken());
	
	}
}

when() 跟 PowerMockito.when() 是兩個不同的方法!when() = Mockito.when()

到此,相信大家對“java中PowerMockito模擬方法內new對象實例”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

当阳市| 陆川县| 安平县| 周至县| 巢湖市| 朝阳市| 巴林左旗| 秦安县| 河源市| 桂东县| 锡林浩特市| 宁晋县| 博罗县| 平谷区| 钟祥市| 大姚县| 宣武区| 潼南县| 河曲县| 普陀区| 应城市| 津市市| 竹山县| 上犹县| 蒙阴县| 三门峡市| 九龙坡区| 丰都县| 新蔡县| 双辽市| 昌都县| 江油市| 合肥市| 清水河县| 布尔津县| 库车县| 襄城县| 裕民县| 喜德县| 寿阳县| 阳江市|