栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在使用Mockito和JUnit的方法中检查if语句?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在使用Mockito和JUnit的方法中检查if语句?

如果您确实想要
单元测试而不是集成测试,则可以依靠注释

@Mock
来模拟服务
FilterDataProvider
并将
@InjectMocks
模拟插入到的实例中
FilterDataController

然后,您可以提出3个测试:

  1. 日期正确无误的一项测试,
  2. 日期正确但相等的另一个
  3. 最后一个日期不正确的日期将抛出
    ValueNotAllowedException
    ,可以使用进行开箱测试
    @Test(expected = ValueNotAllowedException.class)

如果需要确保

filterDataProvider.getPossibleCountries(startDate,newEndDate)
已使用期望的参数调用了该方法,则需要使用
verify

该代码将是这样的:

@RunWith(MockitoJUnitRunner.class)public class FilterDataControllerTest {    @Mock    FilterDataProvider filterDataProvider;    @InjectMocks    FilterDataController controller;    @Test(expected = ValueNotAllowedException.class)    public void testGetPossibleFilterDataIncorrectDates() {        controller.getPossibleFilterData(new Date(1L), new Date(0L));    }    @Test    public void testGetPossibleFilterDataCorrectDates() {        // Make the mock returns a list of fake possibilities        Mockito.when( filterDataProvider.getPossibleCountries(     Mockito.anyObject(), Mockito.anyObject() )        ).thenReturn(Arrays.asList("foo", "bar"));        ResponseEntity<Object> response = controller.getPossibleFilterData( new Date(0L), new Date(1L)        );        Assert.assertEquals(HttpStatus.OK, response.getStatusCode());        // Make sure that         // filterDataProvider.getPossibleCountries(new Date(0L), new Date(1L))        // has been called as expected        Mockito.verify(filterDataProvider).getPossibleCountries( new Date(0L), new Date(1L)        );        // Test response.getBody() here    }    @Test    public void testGetPossibleFilterDataEqualDates() {        // Make the mock returns a list of fake possibilities        Mockito.when( filterDataProvider.getPossibleCountries(     Mockito.anyObject(), Mockito.anyObject() )        ).thenReturn(Arrays.asList("foo", "bar"));        // Call the controller with the same dates        ResponseEntity<Object> response = controller.getPossibleFilterData( new Date(1L), new Date(1L)        );        Assert.assertEquals(HttpStatus.OK, response.getStatusCode());        Mockito.verify(filterDataProvider).getPossibleCountries( new Date(1L), new Date(TimeUnit.DAYS.toMillis(1))        );        // Test response.getBody() here    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/570777.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号