首页>新闻>太原靠谱的Java培训机构怎么选

太原靠谱的Java培训机构怎么选

来源:太原达内IT教育学校

时间:2021/5/6 16:15:21

太原靠谱的Java培训机构怎么选?小编在这里为大家推荐太原达内IT培训,17年专业IT培训机构,美国上市集团,开设IT培训班Java、python、大数据、linux、UI、会计等IT培训,覆盖IT培训和非IT培训共24大课程。达内集团凭借雄厚的技术研发实力、过硬的教学质量、成熟的就业服务团队,为学员提供强大的职业竞争力,在用人企业中树立了良好的口碑。欢迎大家的在线咨询,0元试听,随到随学,推荐就业。接下来小编为您分享,Java单元测试技巧之PowerMock


四  when语句


1  when().thenReturn()模式


声明:


PowerMockito.when(mockObject.someMethod(someArgs)).thenReturn(expectedValue);


PowerMockito.when(mockObject.someMethod(someArgs)).thenThrow(expectedThrowable);


PowerMockito.when(mockObject.someMethod(someArgs)).thenAnswer(expectedAnswer);


PowerMockito.when(mockObject.someMethod(someArgs)).thenCallRealMethod();


用途:用于模拟对象方法,先执行原始方法,再返回期望的值、异常、应答,或调用真实的方法。


返回期望值


public class ListTest {


   @Test


   public void testGet() {


       int index = 0;


       Integer expected = 100;


       List<Integer> mockList = PowerMockito.mock(List.class);


       PowerMockito.when(mockList.get(index)).thenReturn(expected);


       Integer actual = mockList.get(index);


       Assert.assertEquals("返回值不相等", expected, actual);


   }


}


返回期望异常


public class ListTest {


   @Test(expected = IndexOutOfBoundsException.class)


   public void testGet() {


       int index = -1;


       Integer expected = 100;


       List<Integer> mockList = PowerMockito.mock(List.class);


       PowerMockito.when(mockList.get(index)).thenThrow(new IndexOutOfBoundsException());


       Integer actual = mockList.get(index);


       Assert.assertEquals("返回值不相等", expected, actual);


   }


}


返回期望应答


public class ListTest {


   @Test


   public void testGet() {


       int index = 1;


       Integer expected = 100;


       List<Integer> mockList = PowerMockito.mock(List.class);


       PowerMockito.when(mockList.get(index)).thenAnswer(invocation -> {


           Integer value = invocation.getArgument(0);


           return value * 100;


       });


       Integer actual = mockList.get(index);


       Assert.assertEquals("返回值不相等", expected, actual);


   }


}


调用真实方法


public class ListTest {


   @Test


   public void testGet() {


       int index = 0;


       Integer expected = 100;


       List<Integer> oldList = new ArrayList<>();


       oldList.add(expected);


       List<Integer> spylist = PowerMockito.spy(oldList);


       PowerMockito.when(spylist.get(index)).thenCallRealMethod();


       Integer actual = spylist.get(index);


       Assert.assertEquals("返回值不相等", expected, actual);


   }


}


2  doReturn().when()模式


声明:


PowerMockito.doReturn(expectedValue).when(mockObject).someMethod(someArgs);


PowerMockito.doThrow(expectedThrowable).when(mockObject).someMethod(someArgs);


PowerMockito.doAnswer(expectedAnswer).when(mockObject).someMethod(someArgs);


PowerMockito.doNothing().when(mockObject).someMethod(someArgs);


PowerMockito.doCallRealMethod().when(mockObject).someMethod(someArgs);


用途:用于模拟对象方法,直接返回期望的值、异常、应答,或调用真实的方法,无需执行原始方法。


注意,千万不要使用以下语法:


PowerMockito.doReturn(expectedValue).when(mockObject.someMethod(someArgs));


PowerMockito.doThrow(expectedThrowable).when(mockObject.someMethod(someArgs));


PowerMockito.doAnswer(expectedAnswer).when(mockObject.someMethod(someArgs));


PowerMockito.doNothing().when(mockObject.someMethod(someArgs));


PowerMockito.doCallRealMethod().when(mockObject.someMethod(someArgs));


虽然不会出现编译错误,但是在执行时会抛出UnfinishedStubbingException异常。


返回期望值


public class ListTest {


   @Test


   public void testGet() {


       int index = 0;


       Integer expected = 100;


       List<Integer> mockList = PowerMockito.mock(List.class);


       PowerMockito.doReturn(expected).when(mockList).get(index);


       Integer actual = mockList.get(index);


       Assert.assertEquals("返回值不相等", expected, actual);


   }


}


返回期望异常


public class ListTest {


   @Test(expected = IndexOutOfBoundsException.class)


   public void testGet() {


       int index = -1;


       Integer expected = 100;


       List<Integer> mockList = PowerMockito.mock(List.class);


       PowerMockito.doThrow(new IndexOutOfBoundsException()).when(mockList).get(index);


       Integer actual = mockList.get(index);


       Assert.assertEquals("返回值不相等", expected, actual);


   }


}


返回期望应答


public class ListTest {


   @Test(expected = IndexOutOfBoundsException.class)


   public void testGet() {


       int index = -1;


       Integer expected = 100;


       List<Integer> mockList = PowerMockito.mock(List.class);


       PowerMockito.doThrow(new IndexOutOfBoundsException()).when(mockList).get(index);


       Integer actual = mockList.get(index);


       Assert.assertEquals("返回值不相等", expected, actual);


   }


}


模拟无返回值


public class ListTest {


   @Test


   public void testGet() {


       int index = 1;


       Integer expected = 100;


       List<Integer> mockList = PowerMockito.mock(List.class);


       PowerMockito.doAnswer(invocation -> {


           Integer value = invocation.getArgument(0);


           return value * 100;


       }).when(mockList).get(index);


       Integer actual = mockList.get(index);


       Assert.assertEquals("返回值不相等", expected, actual);


   }


}

温馨提示:为了不影响您的时间,来校区前或者遇到不明白的问题请先电话咨询,方便我校安排相关课程的专业老师为您解答,选取适合您的课程。以上是太原达内教育的小编为您分享的关于Java单元测试技巧之PowerMock的内容,希望可以为同学们提供帮助,更多Java资讯请持续关注太原达内教育。

  • 上一篇:太原达内线上Java课程
  • 下一篇:太原Java暑期培训班有哪些
  • 相关推荐 更多>

    太原精选几大Java培训机构人气...

    太原十大UI设计师培训机构今日重...

    太原python培训机构哪家值得...

    太原python培训中心哪个好

    太原UI设计培训机构哪家好

    太原web基础差学习课程哪好

    预约体验课

    版权所有:搜学搜课(www.soxsok.com)

  • 在线咨询
  • 电话咨询
  • 预约试听

  • ;