我正在为映射类进行单元测试,但每次它都显示NullPointerException

@Mapper(componentModel = "spring")
public abstract class CountryMapper implements EntityMapper<CountryDTO, Country> {

  static final public CountryMapper INSTANCE = Mappers.getMapper(CountryMapper.class);

  @Autowired
  CountryRepository countryRepository;

  Country fromId(Long id) {
    if (id == null) {
      return null;
    }
    return countryRepository.findOne(id);
  }
}


public class CountryMapperUnitTest {

  CountryMapper countryMapper = CountryMapper.INSTANCE;

  @Test
public void givenIdCountrytoCountry_whenMaps_thenCorrect() {

    Long id = 1L;
    Country country = countryMapper.fromId(id);
    assertEquals(id, country.getId()); //NullPointerException

}

com.soft.prg.service.mapper.CountryMapperUnitTest.givenCountryDTOtoCountry_whenMaps_thenCorrect(CountryMapperUnitTest.java:26)中的java.lang.NullPointerException位于sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl . java:62)在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.junit.runners.model.FrameworkMethod $ 1.runReflectiveCall( FrameworkMethod.java:50)org.junit.runners.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)atg.junit .internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78 )org.junit.runners.BlockJUnit4ClassRunner.runChild(Blo ckJUnit4ClassRunner.java:57)org.junit.runners.ParentRunner $ 3.run(ParentRunner.java:290)org.junit.runners.ParentRunner $ 1.schedule(ParentRunner.java:71)at org.junit.runners.ParentRunner .runChildren(ParentRunner.java:288)位于org.junit的org.junit.runners.rarentRunner.access $ 000(ParentRunner.java:58)org.junit.runners.ParentRunner $ 2.evaluate(ParentRunner.java:268) . runners.ParentRunner.run(ParentRunner.java:363)位于org.eclipse.jdt.internal.junit.runner.TestExecution的org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86) . 运行(TestExecution.java:38)org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner . java:678)org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

当我在课程上添加 @RunWith (SpringRunner.class) 时,它会向我显示此错误

org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为'com.soft.prg.service.mapper.CountryMapperUnitTest'的bean时出错:通过字段'countryMapper'表示的不满意的依赖关系;嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有'com.soft.prg.service.mapper.CountryMapper'类型的限定bean可用:预计至少有1个bean有资格作为autowire候选者 . 依赖注释:{org.springframework.beans.factory.annotation.Autowired(required = true)}在org.springframework的org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588) . bean.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory的org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366) . populateBean(AbstractAutowireCapableBeanFactory.java:1264)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireBeanProperties(AbstractAutowireCapableBeanFactory.java:386)at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:118)在org.springframework.test.context.suppor t.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java: 228)org.springframework上的org.springframework.test.context.junit4.SpringJUnit4ClassRunner $ 1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) . test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)位于org.springframework.test.context.unit4.SpringJUnit4ClassRunner . runChild(SpringJUnit4ClassRunner.java:94)在org.junit.runners.ParentRunner $ 3.run(ParentRunner.java:290)在org.junit.runners.ParentRunner $ 1.schedule(ParentRunner.java:71)在org.junit.runners.ParentRunner.runChildren(ParentRunner.java :288)在org.junit.runners.ParentRunner.access $ 000(ParentRunner.java:58)维持在org.springframework.test.context.junit4 org.junit.runners.ParentRunner $ 2.evaluate(ParentRunner.java:268) . 在Org.jun.runner.ParentRunner.run(ParentRunner.java: 363)在org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)在org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)在org.eclipse org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests中的.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) . moteTestRunner.java:459)在org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)在org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java: 382)在org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)产生的原因:org.springframework.beans.factory.NoSuchBeanDefinitionException:无类型com.soft.prg的”合格的 beans . service.mapper.CountryMapper'可用:预计至少有1个bean可以作为autowire候选者 . 依赖注解:{@ org.springframework.beans.factory.annotation.Autowired(所需=真)}在org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1493)在org.springframework.beans . or.s.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066)org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement上的factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1104) . 注入(AutowiredAnnotationBeanPostProcessor.java:585)......还有28个