// 自动回滚的数据源父类
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:spring/context-test.xml" })
public abstract class ControllerTest extends AbstractTransactionalJUnit4SpringContextTests {
@BeforeClass
public static void setUpBeforeClass() throws Exception {
SimpleNamingContextBuilder builder = SimpleNamingContextBuilder.emptyActivatedContextBuilder();
DriverManagerDataSource ds = new DriverManagerDataSource();
ds.setUrl("jdbc:oracle:thin:@hostname:port:sid");
ds.setDriverClassName("oracle.jdbc.driver.OracleDriver");
ds.setUsername("user");
ds.setPassword("pwd");
builder.bind("java:comp/env/jdbc/MyDataSource", ds);
}
}
// 无数据源的父类
public abstract class ControllerTest extends AbstractJUnit4SpringContextTests
-------------------------------------------------------分割线-------------------------------------------------------
import static org.springframework.test.web.server.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.server.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.server.result.MockMvcResultMatchers.status;
import static org.springframework.test.web.server.setup.MockMvcBuilders.standaloneSetup;
public class MyControllerTest extends ControllerTest{
@Autowired
private MyController myController;
@Test
public void testGet() throws Exception{
// a json string
String output = standaloneSetup(myController).build()
.perform(
get("/geturl?param=xxxxx")
.contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON)
.headers(getRemoteHeaders())
).andExpect(status().isOk()).andReturn().getResponse().getContentAsString();
}
@Test
public void testPost() throws Exception{
MyForm form = new MyForm();
// a json string, the url didn't contain root context
String output = standaloneSetup(myController).build()
.perform(
post("/posturl").body(JsonUtil.objectToString(form).getBytes("UTF-8"))
.contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON)
.headers(getRemoteHeaders())
).andExpect(status().isOk()).andReturn().getResponse().getContentAsString();
}
private HttpHeaders getRemoteHeaders(){
HttpHeaders headers = new HttpHeaders();
headers.add("key", "value");
return headers;
}
}
Spring Controller Junit例子
最新推荐文章于 2023-06-05 00:15:00 发布