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

模拟的存储库返回null

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

模拟的存储库返回null

我相信您错过了单元测试和模拟的整个想法。

  1. 在对进行单元测试时
    UserService
    ,您不想使用实际的
    UserRepository
    实现。
  2. UserRepository
    模拟了一个,您不希望模拟对象立即表现出真实的对象。您需要弥补其行为(即存根)。
  3. 您几乎不需要在单元测试中使用Spring Runner。

为了确定模拟对象的行为,您必须了解被测系统(

UserService
在您的情况下为SUT )及其依赖项(
UserRepository
)的预期交互作用。

在您的情况下,测试应该看起来像(尚未编译,只是向您展示想法)

public class UserServiceTest {    @InjectMocks    UserService userService;    @Mock    UserDao mockUserRepository;    @Before    public void setUp(){        MockitoAnnotations.initMocks(this);    }    @Test    public void testFindUser(){        // Given        User dummyUser = new User();        when(mockUserRepository.findByLoginAndPassword(anyString(), anyString()).thenReturn(dummyUser);        // When        User result = userService.findUser("first", "teste");        // Then        // you are expecting service to return whatever returned by repo        assertThat("result", result, is(sameInstance(dummUser)));        // you are expecting repo to be called once with correct param        verify(mockUserRepository).findByLoginAndPassword("first", "teste");    }}


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

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

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