获得;java.lang.StackOverflower错误:null";在播放2.3.2单元测试中使用Helpers.fakeapplication时

获得;java.lang.StackOverflower错误:null";在播放2.3.2单元测试中使用Helpers.fakeapplication时,java,unit-testing,playframework-2.0,Java,Unit Testing,Playframework 2.0,我想尝试在Play2.3框架中使用fakeApplication进行Java单元测试。我的代码如下: import static org.fest.assertions.Assertions.assertThat; import static play.test.Helpers.fakeApplication; import static play.test.Helpers.running; import org.junit.Test; import play.test.WithApplicat

我想尝试在Play2.3框架中使用fakeApplication进行Java单元测试。我的代码如下:

import static org.fest.assertions.Assertions.assertThat;
import static play.test.Helpers.fakeApplication;
import static play.test.Helpers.running;
import org.junit.Test;
import play.test.WithApplication;

public class ApplicationTest extends WithApplication {

    @Test
    public void simpleCheck() {
        running(fakeApplication(), new Runnable() {
            public void run() {
                int a = 1 + 1;
                assertThat(a).isEqualTo(2);
            }
        });
    }
}
但是,我得到以下错误:

[error] Test ApplicationTest.simpleCheck failed: java.lang.StackOverflowError: null, took 3.862 sec
[error]     at java.lang.String.regionMatches(String.java:1326)
[error]     at java.lang.String.equalsIgnoreCase(String.java:1090)
[error]     at org.slf4j.impl.JDK14LoggerFactory.getLogger(JDK14LoggerFactory.java:55)
[error]     at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:270)
[error]     at org.slf4j.bridge.SLF4JBridgeHandler.getSLF4JLogger(SLF4JBridgeHandler.java:204)
[error]     at org.slf4j.bridge.SLF4JBridgeHandler.publish(SLF4JBridgeHandler.java:291)
[error]     at java.util.logging.Logger.log(Logger.java:610)
[error]     at org.slf4j.impl.JDK14LoggerAdapter.log(JDK14LoggerAdapter.java:579)
.
.
.
[error] Failed: Total 1, Failed 1, Errors 0, Passed 0
[error] Failed tests:
[error]         ApplicationTest
[error] (test:testOnly) sbt.TestsFailedException: Tests unsuccessful
当我不使用fakeApplication时,测试通过。

如,
WithApplication
中所述,自动确保为您启动和停止假应用程序

因此,如果使用应用程序扩展
,则不需要在测试中启动新的测试。
试试这个:

public class ApplicationTest extends WithApplication {
    @Test
    public void simpleCheck() {
        int a = 1 + 1;
        assertThat(a).isEqualTo(2);
    }
}
还是这个

public class ApplicationTest {
    @Test
    public void simpleCheck() {
        running(fakeApplication(), new Runnable() {
            public void run() {
                int a = 1 + 1;
                assertThat(a).isEqualTo(2);
            }
        });
    }
}

问题在于我的非托管依赖项中存在不同版本的slf4j jar文件。我删除了那些罐子并解决了问题:)