小编Nik*_*son的帖子

Play framework 2.5.x:IllegalStateException:在ActorMaterializer关闭后尝试调用materialize()

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)

java unit-testing playframework playframework-2.5

6
推荐指数
0
解决办法
457
查看次数