JUnit + Mockito如何测试DAO层



我在项目中使用了Spring,SpringMVC,Mybatis。
第一次和莫吉托一起玩。

在使用 Mockito 之前,测试代码如下所示

@Test
@Transactional
@Rollback
public void setNewUnifyPriceRoom() throws Exception {
    Map reqMap = new HashMap();
    reqMap.put("typeId", 21);
    reqMap.put("roomId", 19);
    roomDockingsMapper.setNewUnifyPriceRoom(reqMap);
    String isUnifyPriceRoom = roomDockingsMapper.isUnifyPriceRoom(19, 21);
    Assert.assertEquals("Y", isUnifyPriceRoom);
}

然后我找到了Mockito,因为我不想在测试期间接触数据库。我尝试编写一个 BeforeClass 作为数据提供程序。但是,当我在执行设置NewUnifyPriceRoom操作后尝试返回某些内容时,我卡住了

 private static RoomDockingsMapper mockRoomDockingsMapper;
    @BeforeClass
    public static void setup(){
        Map reqMap = new HashMap();
        reqMap.put("typeId", 21);
        reqMap.put("roomId", 19);
        mockRoomDockingsMapper = mock(RoomDockingsMapper.class);
        when(mockRoomDockingsMapper.setNewUnifyPriceRoom(reqMap)).thenReturn(??????);
    }

基本上我想做的是在设置NewUnifyPriceRoom之后,然后在然后返回部分中设置是UnifyPriceRoom方法返回"Y"。

任何帮助将不胜感激。

你不想嘲笑你正在测试的方法。您希望模拟setNewUnifyPriceRoom内部发生的数据库交互,以便您可以验证代码的其余部分是否正常工作。

最新更新