spring使用junit进行测试时报错,出现空指针

spring使用junit进行测试时报错,出现空指针,第1张

spring使用junit进行测试时报错,出现空指针

控制台抛出的错误

十一月 04, 2021 12:02:58 下午 org.junit.vintage.engine.discovery.TestClassRequestResolver determineRunnerTestDescriptor
警告: Runner org.junit.internal.runners.ErrorReportingRunner (used on com.briup.test.AOPXMLTest) does not support filtering and will therefore be run completely.
null

这个错误在junit显示的是NullPointerException

//其实,这个错误的主要原因就是junit的版本不匹配
Junit4在类的开头使用的是“@RunWith”,Junit5中类的前面使用的“@ExtendWith”,所以说两个版本使用的注解是不一样的。
Junit4的“@Test”需要导入的是org.junit.Test,而Junit5的“@Test”这个注解,需要导入的是org.junit.jupiter.api.Test。
所以说,如果使用Junit4的话,就把导入改为“import org.junit.Test”。
如果使用Junit5的话,就把“@RunWith”改成“@ExtendWith”
还需要注意:使用“@RunWith”和“@ExtendWith”这两个注解时里面的参数是不同的(切记)
这样就可以解决了。

//这是我测试类里面的代码
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;

import com.briup.service.ITeacherService;


@RunWith(SpringRunner.class)
@ContextConfiguration(locations="classpath:applicationContext.xml")
public class AOPXMLTest {
	@Autowired
	private ITeacherService teacherService;

	@Test
	public void test() {
		System.out.println(teacherService);
		System.out.println(teacherService.getClass());
	}
	
	@Test
	public void test_saveOrUpdate() {
		teacherService.saveOrUpdate();
	}
	
	@Test
	public void test_delete() {
		teacherService.delete();
	}
	
	@Test
	public void test_deleteBatch() {
		teacherService.deleteBatch();
	}
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5139226.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存