spring junit 测试用例中的此位置不允许注释 @Mock

annotation @Mock is disallowed for this location in spring junit testcase

我正在为 spring 控制器编写单元测试。我的控制器基于 Rest API,我正在使用 @RequestBody 和 @ResponseBody 注释来支持它。 使用@Mock annotation.please suggest.

时出现“此位置不允许注释@Mock”错误

我的测试 class 如下所示:

@RunWith(SpringJunit4ClassRunner.class)
@WebAppConfiguration
Public class ControllerTest{

Controller1 controller1;

Public void init(){
    controller1= new Controller1 ();
}


@Test
Public voidd test(){
    ServiceAdaptorClass ServiceAdap= new MockUp<ServiceAdaptorClass>{
            @Mock  // getting error here that “The annotation @Mock is disallowed for this location”
            ReturnType methodname( arg1,arg2) throws Exception{
                 ReturnType returntype;
                 returntype.setProperty(…..);
                 return returntype;
                }
        }.getMockInstance(); 

    mockmvc.perform("url");
    } 
}

“此位置不允许@Mock”是一种一般性错误,如果该注释缺少导入,则会出现此错误。

有2个@Mock注解:

import mockit.Mock

import org.mockito.Mock

也许您在测试中同时使用了这两者,因此只需为您正在使用的注释之一添加完整的导入路径。