注释@Mock在spring junit testcase中不允许使用此位置

时间:2015-01-13 15:12:04

标签: spring-mvc junit mockito

我正在为弹簧控制器编写单元测试。我的控制器基于Rest API,我使用@RequestBody和@ResponseBody注释来支持它。 我在使用@Mock annotation.please建议时收到“注释@Mock被禁止此位置”错误。

我的测试课如下:

@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");
    } 
}

2 个答案:

答案 0 :(得分:1)

“@ Mock被禁止使用此位置”是一种通用错误,如果该注释缺少导入,则会出现这种错误。

答案 1 :(得分:0)

有2个@Mock注释:

import mockit.Mock

import org.mockito.Mock

也许你在测试中同时使用两者,所以只需为你正在使用的注释之一添加完整的导入路径。