Arrays.asList(null, null, "dd")会发生什么?

本文介绍了一个简单的Java程序,演示了如何处理字符串类型的空值,并将其放入列表中进行遍历输出。通过实例展示了null值和非null值在实际操作中的表现。

public void main() {

        String a = null;

        String b = "jjj";

        String c = null;

 

       List<String> ws = Arrays.asList(a, b, c);

       for(String e : ws) {

           System.out.println(e);

       }

    }

 

print out:

 

null

jjj

null

@Test public void testGetDeviceSimpleListInternal_MultipleDevices() { // 准备测试数据 OmadacId omadacId = new OmadacId("test-omadac"); SiteId siteId = new SiteId("test-site"); DeviceOutlineSimpleDTO dbDevice1 = new DeviceOutlineSimpleDTO(); dbDevice1.setMac("00:11:22:33:44:55"); DeviceOutlineSimpleDTO dbDevice2 = new DeviceOutlineSimpleDTO(); dbDevice2.setMac("AA:BB:CC:DD:EE:FF"); // 模拟行为 when(deviceRepository.findByOmadacIdAndSiteForOutLineSimple(omadacId, siteId)) .thenReturn(Arrays.asList(dbDevice1, dbDevice2)); when(deviceImageRepository.listByOmadacIdAndSiteIdAndMacs(omadacId, siteId, new HashSet<>(Arrays.asList("00:11:22:33:44:55", "AA:BB:CC:DD:EE:FF")))) .thenReturn(Collections.emptyList()); when(queryDeviceService.fillDeviceImageByOtherNode(anyList(), eq(omadacId), eq(siteId))) .thenReturn(Collections.emptyList()); when(queryDeviceService.resolveDeviceOutlinesSimple(anyList(), anyList(), isNull(), isNull())) .thenReturn(Arrays.asList(dbDevice1, dbDevice2)); // 调用方法 List<DeviceOutlineSimpleDTO> result = queryDeviceService.getDeviceSimpleListInternal( omadacId, siteId, null, null, false); // 验证结果 assertNotNull(result); assertEquals(2, result.size()); }也报错:org.mockito.exceptions.misusing.NotAMockException: Argument passed to when() is not a mock! Example of correct stubbing: doThrow(new RuntimeException()).when(mock).someMethod(); at com.tplink.smb.omada.manager.device.domain.model.device.QueryDeviceServiceTest.testResolveDeviceOutlinesSimple_WithMatchingDevice(QueryDeviceServiceTest.java:808) at java.base/java.lang.reflect.Method.invoke(Method.java:569) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
最新发布
11-22
@Test public void testGetSingleCompetitionDetails_success() throws ParseException { // 准备请求参数 GetSingleCompetitionDetailsRequestDto requestDto = new GetSingleCompetitionDetailsRequestDto(); requestDto.setCompetitionId(1L); requestDto.setDsId("user123"); // 准备比赛信息 CompetitionPo competitionPo = new CompetitionPo(); competitionPo.setId(1L); competitionPo.setMode(CompetitionMode.SINGLE.getValue()); competitionPo.setStatus(CompetitionStatus.ONGOING.getValue()); competitionPo.setStartTime(new Date(System.currentTimeMillis() - 1000000)); competitionPo.setEndTime(new Date(System.currentTimeMillis() + 1000000)); competitionPo.setAccess("self,scene,fusion,list"); // 准备用户信息 UserInfoPo blueUser = new UserInfoPo(); blueUser.setDsId("user1"); blueUser.setHeadImgUrl("http://example.com/blue.png"); UserInfoPo redUser = new UserInfoPo(); redUser.setDsId("user2"); redUser.setHeadImgUrl("http://example.com/red.png"); // 模拟服务调用 when(competitionService.getCompetitionById(1L)).thenReturn(competitionPo); when(userService.getUsersByDsIds(Arrays.asList("user1", "user2"))).thenReturn(Arrays.asList(blueUser, redUser)); // 创建第一个对象 CompetitionLikePo po1 = new CompetitionLikePo(); po1.setId(1L); po1.setCompetitionId(1L); po1.setUserId("user1"); po1.setContestantIdentity(ContestantIdentity.BLUE.getValue()); // 创建第二个对象 CompetitionLikePo po2 = new CompetitionLikePo(); po2.setId(2L); po2.setCompetitionId(1L); po2.setUserId("user123"); po2.setContestantIdentity(ContestantIdentity.RED.getValue()); when(competitionLikeService.getUserLikeCompetitionList("user123", 1L)) .thenReturn(Arrays.asList(po1, po2)); // 6. 模拟 measureService Map<String, String> measureMap = new HashMap<>(); GetDsListMeasureReqBo measureReqBo = new GetDsListMeasureReqBo(); measureReqBo.setDsIds(Arrays.asList("user1001", "user1002", "user1003")); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); measureReqBo.setStartDate(sdf.parse("2025-04-01")); measureReqBo.setEndDate(sdf.parse("2025-04-10")); measureReqBo.setAccess(Arrays.asList("login", "click", "page_view")); measureReqBo.setMeasure("total_visits"); when(measureService.getDsListMeasure(any(GetDsListMeasureReqBo.class))).thenReturn(measureMap); // 模拟 contestantService List<CompetitionContestantPo> contestantPos = Arrays.asList( CompetitionContestantPo.builder().id(1L).contestantIdentity(ContestantIdentity.BLUE.getValue()).build(), CompetitionContestantPo.builder().id(2L).contestantIdentity(ContestantIdentity.RED.getValue()).build() ); when(contestantService.getContestantsByCompetitionId(anyLong())).thenReturn(contestantPos); Map<String, String> mockMap = new HashMap<>(); mockMap.put("user1", "20250405120000"); when(measureService.getDsListRealtime(any(GetDsListRealtimeReqBo.class))).thenReturn(mockMap); // 调用方法 BaseResponse<GetSingleCompetitionDetailsResponseDto> result = business.getSingleCompetitionDetails(requestDto); // 验证结果 assertNotNull(result); assertTrue(result.isOK()); GetSingleCompetitionDetailsResponseDto responseDto = result.getData(); assertNotNull(responseDto); assertEquals("user1", responseDto.getBlueUserId()); assertEquals("user2", responseDto.getRedUserId()); assertEquals("http://example.com/blue.png", responseDto.getBlueUserInfo().getAvatar()); assertEquals("http://example.com/red.png", responseDto.getRedUserInfo().getAvatar()); assertTrue(responseDto.getBlueUserInfo().getIsLike()); assertTrue(responseDto.getRedUserInfo().getIsLike()); }我这个测试方法的逻辑和断言有问题吗
07-30
@Test public void testGetSingleCompetitionDetails_success() throws ParseException { // 准备请求参数 GetSingleCompetitionDetailsRequestDto requestDto = new GetSingleCompetitionDetailsRequestDto(); requestDto.setCompetitionId(1L); requestDto.setDsId("user123"); // 准备比赛信息 CompetitionPo competitionPo = new CompetitionPo(); competitionPo.setId(1L); competitionPo.setMode(CompetitionMode.SINGLE.getValue()); competitionPo.setStatus(CompetitionStatus.ONGOING.getValue()); competitionPo.setStartTime(new Date(System.currentTimeMillis() - 1000000)); competitionPo.setEndTime(new Date(System.currentTimeMillis() + 1000000)); competitionPo.setAccess("self,scene,fusion,list"); // 准备用户信息 UserInfoPo blueUser = new UserInfoPo(); blueUser.setDsId("user1"); blueUser.setHeadImgUrl("http://example.com/blue.png"); UserInfoPo redUser = new UserInfoPo(); redUser.setDsId("user2"); redUser.setHeadImgUrl("http://example.com/red.png"); // 模拟服务调用 when(competitionService.getCompetitionById(1L)).thenReturn(competitionPo); when(userService.getUsersByDsIds(Arrays.asList("user1", "user2"))).thenReturn(Arrays.asList(blueUser, redUser)); // 创建第一个对象 CompetitionLikePo po1 = new CompetitionLikePo(); po1.setId(1L); po1.setCompetitionId(1L); po1.setUserId("user1"); po1.setContestantIdentity(ContestantIdentity.BLUE.getValue()); // 创建第二个对象 CompetitionLikePo po2 = new CompetitionLikePo(); po2.setId(2L); po2.setCompetitionId(1L); po2.setUserId("user123"); po2.setContestantIdentity(ContestantIdentity.RED.getValue()); when(competitionLikeService.getUserLikeCompetitionList("user123", 1L)) .thenReturn(Arrays.asList(po1, po2)); // 6. 模拟 measureService Map<String, String> measureMap = new HashMap<>(); GetDsListMeasureReqBo measureReqBo = new GetDsListMeasureReqBo(); measureReqBo.setDsIds(Arrays.asList("user1001", "user1002", "user1003")); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); measureReqBo.setStartDate(sdf.parse("2025-04-01")); measureReqBo.setEndDate(sdf.parse("2025-04-10")); measureReqBo.setAccess(Arrays.asList("login", "click", "page_view")); measureReqBo.setMeasure("total_visits"); when(measureService.getDsListMeasure(any(GetDsListMeasureReqBo.class))).thenReturn(measureMap); // 模拟 contestantService List<CompetitionContestantPo> contestantPos = Arrays.asList( CompetitionContestantPo.builder().id(1L).contestantIdentity(ContestantIdentity.BLUE.getValue()).build(), CompetitionContestantPo.builder().id(2L).contestantIdentity(ContestantIdentity.RED.getValue()).build() ); when(contestantService.getContestantsByCompetitionId(anyLong())).thenReturn(contestantPos); Map<String, String> mockMap = new HashMap<>(); mockMap.put("user1", "20250405120000"); when(measureService.getDsListRealtime(any(GetDsListRealtimeReqBo.class))).thenReturn(mockMap); // 调用方法 BaseResponse<GetSingleCompetitionDetailsResponseDto> result = business.getSingleCompetitionDetails(requestDto); // 验证结果 assertNotNull(result); assertTrue(result.isOK()); GetSingleCompetitionDetailsResponseDto responseDto = result.getData(); assertNotNull(responseDto); assertEquals(null, responseDto.getBlueUserId()); assertEquals(null, responseDto.getRedUserId()); assertEquals(null, responseDto.getBlueUserInfo().getAvatar()); assertEquals(null, responseDto.getRedUserInfo().getAvatar()); assertTrue(responseDto.getBlueUserInfo().getIsLike()); assertTrue(responseDto.getRedUserInfo().getIsLike()); }我的这个测试方法,在走到这行代码BaseResponse<GetSingleCompetitionDetailsResponseDto> result = business.getSingleCompetitionDetails(requestDto);调用真实逻辑时, public BaseResponse<GetSingleCompetitionDetailsResponseDto> getSingleCompetitionDetails(final GetSingleCompetitionDetailsRequestDto requestDto) { // 获取比赛信息 CompetitionPo competitionPo = competitionService.getCompetitionById(requestDto.getCompetitionId()); if (null == competitionPo || !CompetitionMode.SINGLE.getValue().equals(competitionPo.getMode())) { // 不存在当前单人赛 return BaseResponse.fail(ReturnCode.SINGLE_COMPETITION_NOT_EXIST_ERROR); } GetSingleCompetitionDetailsResponseDto responseDto = buildGetSingleCompetitionDetailsResponseInfo(requestDto.getDsId(), competitionPo); List<Integer> competitionStatusList = new ArrayList<>(); // 其他逻辑 } CompetitionPo competitionPo = competitionService.getCompetitionById(requestDto.getCompetitionId());走到这行代码时仍会查询真实数据库,导致competitionPo为null,以至于断言时总是将期望值改为null才可以通过,应该怎么做
07-31
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值