如果用junit4 测试代码覆盖率,而方法中使用了全局变量,针对这个问题,今天留下保存,以便后期使用。
//TestA
public class TestA{
@Autowired
private TestB testB;
String[] str = {"-","="};
public void getTestB(){
testB = new TestB();
String text = testB.getName()+str[0]+testB.getAge();
System.out.print(text);
}
}
//TestB
public class TestB{
public String getName(){
return "test";
}
public int getAge(){
return 27;
}
}
//测试方法如下(环境都改成自己的):
@RunWith(SpringRunner.calss)
@SpringBoot(classes = {com.MyshelfApplication.class},
webEnvironment=SpringBootTest.WebEnvironment.DEFINED_PORT)
public class TestATest{
@Autowired
private TestB testB;
@Test
public void testGetTestB(){
TestA testA = new TestA();
Field testBField = TestA.class.getDeclaredField("testB");
testBField.setAccessible(true);
testBField.set(testA,testB);
MockitoAnnotations.initMocks(this);
//***********以上为准备全局变量************
testA.getTestB();
}
}
版权声明:本文为weixin_42366320原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。