PowerMock 访问私有域

– Start
假设我们有如下类。

package demo04;

import java.util.ArrayList;
import java.util.List;

public class BusinessService {
	private List<String> users = new ArrayList<>();
	
	public void addUser(String user) {
		users.add(user);
	}

}

下面我们看看访问私有字段。

package demo04;

import java.util.List;

import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.powermock.reflect.Whitebox;

@RunWith(PowerMockRunner.class)
@PrepareForTest({ BusinessService.class })
public class BusinessServiceTest {

	@Test
	public void test() throws Exception {
		String testUser = "test";
		BusinessService businessService = new BusinessService();
		businessService.addUser(testUser);

		// 访问私有域
		List<String> users = Whitebox.getInternalState(businessService, "users");

		// 验证
		Assert.assertTrue(users.contains(testUser));
	}

}

– 更多参见:PowerMock 精萃
– 声 明:转载请注明出处
– Last Updated on 2019-08-17
– Written by ShangBo on 2019-08-17
– End

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值