mockito+testng Mock HttpServletRequest
时间: 2023-07-27 14:18:43 浏览: 178
mock server
Mockito可以用来模拟HttpServletRequest对象,然后使用TestNG进行测试。以下是一个示例代码:
```java
import javax.servlet.http.HttpServletRequest;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import static org.mockito.Mockito.*;
public class MyServletTest {
@Mock
HttpServletRequest request;
@BeforeClass
public void setUp() {
MockitoAnnotations.initMocks(this);
}
@Test
public void testMyServlet() {
// 模拟HttpServletRequest对象的行为
when(request.getParameter("username")).thenReturn("testuser");
// 创建一个MyServlet实例并调用doGet方法
MyServlet servlet = new MyServlet();
servlet.doGet(request, null);
// 验证MyServlet的行为是否符合预期
verify(request).getParameter("username");
Assert.assertEquals(servlet.getOutput(), "Hello, testuser!");
}
}
```
在这个例子中,我们使用@Mock注解来创建HttpServletRequest对象的模拟实例。然后,我们使用Mockito的when方法来指定当调用request.getParameter("username")方法时应该返回什么值。接着,我们创建一个MyServlet实例并调用doGet方法,最后使用Mockito的verify方法来验证request.getParameter("username")是否被调用了一次。最后,我们使用TestNG的Assert类来验证MyServlet的输出是否符合预期。
阅读全文