异常:JUnit4 initializationError[Runner:JUnit4](0.001s)的出现与解决

异常提示:

在这里插入图片描述

出现场景:

单元测试的时候出现异常。前一天测试都没问题,第二天写了一个新方法,调用前一天的方法。测试两个方法的时候出现该异常。

相关代码:

	/**
	 * 获取本周的开始和和结束时间(当天)
	 * @return
	 */
	@Test
	public Map<String,String> getThisWeek(){
		
		//获取当前日期,并设定格式
		Date date = new Date();
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
		
		//今天
		String startDate = simpleDateFormat.format(date);
		dateMap.put("startDate", startDate);
		
		Calendar calendar = Calendar.getInstance();
		//获取今天为一周内的第几天,因为从周日开始,所以减1
		int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1;
		//获取今天为本月的第几天
		int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
		
		// 将DAY_OF_MONTH设置为星期一,并获取星期一的日期
		calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth - dayOfWeek + 1);
		String endDate = simpleDateFormat.format(calendar.getTime());
		dateMap.put("endDate", endDate);
		
		return dateMap;
	}

分析原因:

  1. 网上说是缺少jar包
	<dependency>
      <groupId>org.hamcrest</groupId>
      <artifactId>hamcrest-core</artifactId>
      <version>1.3</version>
	</dependency>

导入依赖之后还是报错。
2. 想起前一天测试方法的时候,返回值为void。改为void后执行@Test无异常。

解决方法:

网上没有找到对有返回值的方法进行测试的JUnit方法。所以想了如下的方法进行测试。若是谁知道怎么测试含返回值的方法,也可以在评论里告诉我。

	@Test
	public void test(){
		//获取当前周
		Map<String,String> firstWeekMap = getThisWeek();   //调用测试方法
		
		String startDate = firstWeekMap.get("startDate");
		String endDate = firstWeekMap.get("endDate");
		System.out.println(startDate);
		System.out.println(endDate);
	}

补充

测试A方法的时候。如果某个含返回值的方法B也加了@Test注解,则会出现以下的错误(与前面出现的不同)。解决方法就是去掉B方法的@Test注解,或者是返回值改为void。
在这里插入图片描述

以上。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值