获得;java.lang.StackOverflower错误:null";在播放2.3.2单元测试中使用Helpers.fakeapplication时
我想尝试在Play2.3框架中使用fakeApplication进行Java单元测试。我的代码如下:获得;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
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文件。我删除了那些罐子并解决了问题:)