Play服务器的目的是充当另一个系统的中间服务,其中最终用户在其智能手机上的Web浏览器中访问一小部分功能.
该服务在连接到真实系统时起到应有的作用.但是,我希望以黑盒方式进行单元测试.从头到尾测试功能.为了避免依赖于每天值发生变化的真实系统,我想使用测试Web服务客户端中描述的相同方法,并将其与路由测试相结合,如play-java-seed中的示例测试所示,如图所示为方便起见:
public class HomeControllerTest extends WithApplication {
@Override
protected Application provideApplication() {
return new GuiceApplicationBuilder().build();
}
@Test
public void testIndex() {
Http.RequestBuilder request = new Http.RequestBuilder()
.method(GET)
.uri("/");
Result result = route(app, request);
assertEquals(OK, result.status());
}
}
Run Code Online (Sandbox Code Playgroud)
我的测试代码如下所示:
package controllers;
import java.util.*;
import org.junit.*;
import static org.junit.Assert.*;
import play.Application;
import play.inject.guice.GuiceApplicationBuilder;
import play.mvc.Result;
import play.mvc.Http.RequestBuilder;
import play.routing.*;
import play.server.Server;
import play.test.WithApplication;
import static play.mvc.Http.Status.*;
import static play.mvc.Results.*;
import static play.test.Helpers.*;
public class ApplicationControllerTest extends WithApplication …Run Code Online (Sandbox Code Playgroud)