亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

高清| 含山县| 清丰县| 玉田县| 石棉县| 泌阳县| 林甸县| 沧州市| 年辖:市辖区| 铁岭县| 麻江县| 凤凰县| 奇台县| 东台市| 南华县| 和平区| 金乡县| 庆阳市| 新建县| 武夷山市| 清新县| 三台县| 永川市| 九龙坡区| 石棉县| 文昌市| 富顺县| 上犹县| 望都县| 门头沟区| 寻甸| 雅安市| 乌兰浩特市| 瑞安市| 双鸭山市| 隆尧县| 阳西县| 乐平市| 拉萨市| 哈尔滨市| 贺州市|