java is started_java.lang.NoSuchMethodError:使用Mockito和Junit时的javax.servlet.http.HttpServletRequest.i...

我试图用TDD弄湿我的脚.我正在尝试使用Mockito与MockMvc和Junit一起为控制器编写单元测试用例.

但是我收到运行时错误,从而导致测试失败.起初,由于找不到javax.servlet.SessionCookieConfig,我在设置中初始化MockMvc实例时遇到了问题.

我通过下载javax.servlet api并将其配置到项目的构建路径来解决,但后来我面临着

java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.isAsyncStarted()

在MockMvc实例上使用perform().

任何人都可以告诉我如何处理这种依赖,因为我认为它是由于不兼容的服务器servlet-api和javax.servlet api而发生的.

编辑:我发布我用于单元测试的代码,但我不认为这将是任何帮助,但以防万一:

@RunWith(MockitoJUnitRunner.class)

public class MyControllerTest {

@InjectMocks

private MyController myController = new MyController();

@Mock

private MyService myService = new MyServiceImpl();

private MockMvc mockMvc;

@Before

public void setUp(){

this.mockMvc = MockMvcBuilders.standaloneSetup(myController).build();

}

@Test

public void testList() throws Exception{

A a = new A();

a = createMockClassA();

Mockito.when(myService.getServiceForA(Mockito.anyMapOf(String.class, String.class))).thenReturn(a);

MvcResult result = this.mockMvc.perform(get("/somePath/")).param("someExpectedParam","value").andReturn();

System.out.println(result.getResponse().getContentAsString());

}

private static A createMockClassA(){

A a = new A();

a.setId(i);

a.setTitle("mock-" + i);

return a;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值