Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用@mock进行模拟将显示为空_Java_Junit - Fatal编程技术网

Java 使用@mock进行模拟将显示为空

Java 使用@mock进行模拟将显示为空,java,junit,Java,Junit,我正试图运行这样一个junit测试,在PageBuilderService服务类中使用mockito和注入依赖项 @RunWith(MockitoJUnitRunner.class) @ActiveProfiles(profiles = "staging") @ContextConfiguration(loader = AnnotationConfigContextLoader.class , classes = {ContentProperties.class , MasterPr

我正试图运行这样一个junit测试,在PageBuilderService服务类中使用mockito和注入依赖项

  @RunWith(MockitoJUnitRunner.class)
  @ActiveProfiles(profiles = "staging")
  @ContextConfiguration(loader = AnnotationConfigContextLoader.class , classes = {ContentProperties.class , MasterPropertiesFactory.class })
  class PageBuilderServiceTest {



      @Mock
      public CService cs;

      @Mock
      private RService rs;

      @InjectMocks
      PageBuilderService pageBuilderService  ;




      @ParameterizedTest
      @EnumSource(HompageEnum.class)
      @DisplayName("Testing doIt wsith EnumSource")
      public void checkRowposition(HompageEnum homepageEnum) {

          Mockito.when(contentProperties.getPageFolder(anyString())).thenReturn("http://google.com");


      }

  }
我的主课是

    @Service("pgService")
    public class PageBuilderService {


        @Autowired
        private RService rs;

        @Autowired
        public CService cs;



        public Queue<String> getPaginatedContent(HomepageRequest homepageRequest) {

            Queue<String> staticContent = getStaticContent(homepageRequest.getUrl());

            return staticContent
        }



        public Queue<String> getStaticContent(String url) {

            Queue<String> files = new LinkedList<>();

            String dir = contentProperties.getPageFolder(url);


            return null;
        }


    }
@Service(“pgService”)
公共类PageBuilderService{
@自动连线
私人资源服务;
@自动连线
公共服务;
公共队列getPaginatedContent(HomepageRequest HomepageRequest){
Queue staticContent=getStaticContent(homepageRequest.getUrl());
返回静态内容
}
公共队列getStaticContent(字符串url){
队列文件=新建LinkedList();
String dir=contentProperties.getPageFolder(url);
返回null;
}
}

当我们使用ContentProperties content=mock(ContentProperties.class)时,它可以正常工作,但是当我使用mock注释时,ContentProperties是空的。

我看不出什么是
ContentProperties
-您没有在测试中注入它,但有一件事显然是错误的:

如果您想启动spring,必须使用
SpringJUnit4ClassRunner.class
/
SpringRunner.class
运行它,而不是使用mockito runner

如果没有spring runner,则没有必要指定:

@ActiveProfiles(profiles = "staging")
  @ContextConfiguration(loader = AnnotationConfigContextLoader.class , classes = {ContentProperties.class , MasterPropertiesFactory.class })

除此之外,请检查
@Mock public CService cs
和其他用
@Mock
注释的字段确实有价值(这基本上是Mockito runner应该做的,所以除非这里缺少什么,否则其他Mock和
contentProperties
之间没有区别)

请附加整个类,我们甚至看不到您的导入。