首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >播放Java指南应用程序nr。2测试

播放Java指南应用程序nr。2测试
EN

Stack Overflow用户
提问于 2013-11-11 17:34:04
回答 1查看 510关注 0票数 0

我正试着浏览一下这个指南:http://www.playframework.com/documentation/2.2.x/JavaGuide2,但是它缺少一些解释,使我迷失了方向。更精确地说:(A)在“从用户类开始”的末尾,我应该有错误。我没有。我想“不管什么”,然后继续前进,回想起来,这可能是个错误。( b)我进入了“第一次考试”,但它并没有写我应该把我的考试放在哪里。所以,我把它放在ApplicationTest.java里。然而,它没有通过我的测试,说ebean没有定义。因此,在搜索了一点之后,我尝试在ebean.default="models.*"中添加application.conf。成功了,但现在我有了

代码语言:javascript
运行
复制
[error] Test ApplicationTest.createAndRetrieveUser failed: 
javax.persistence.PersistenceException:
java.sql.SQLException: Attempting to obtain a connection from a pool 
that has already been shutdown.

我不明白怎么回事。

我的应用测试

代码语言:javascript
运行
复制
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.fasterxml.jackson.databind.JsonNode;
import models.User;
import org.junit.*;
import play.mvc.*;
import play.test.*;
import play.data.DynamicForm;
import play.data.validation.ValidationError;
import play.data.validation.Constraints.RequiredValidator;
import play.i18n.Lang;
import play.libs.F;
import play.libs.F.*;
import static play.test.Helpers.*;
import static org.fest.assertions.Assertions.*;
import static org.junit.Assert.*;
import play.libs.*;
import com.avaje.ebean.Ebean;

public class ApplicationTest {

@Test
public void simpleCheck() {
    int a = 1 + 1;
    assertThat(a).isEqualTo(2);
}

@Test
public void renderTemplate() {
    Content html = views.html.index.render("Your new application is ready.");
    assertThat(contentType(html)).isEqualTo("text/html");
    assertThat(contentAsString(html)).contains("Your new application is ready.");
}
@Test
public void createAndRetrieveUser() {
    new User("bob@gmail.com", "Bob", "secret").save();
    User bob = User.find.where().eq("email", "bob@gmail.com").findUnique();
    assertNotNull(bob);
    assertEquals("Bob", bob.name);
}

}

用户类

代码语言:javascript
运行
复制
package models;

import javax.persistence.*;
import play.db.ebean.*;
import com.avaje.ebean.*;

@Entity
public class User extends Model {

@Id
public String email;
public String name;
public String password;

public User(String email, String name, String password) {
  this.email = email;
  this.name = name;
  this.password = password;
}

public static Finder<String,User> find = new Finder<String,User>(
    String.class, User.class
); 
}

application.conf

代码语言:javascript
运行
复制
#tried with 'db.*' uncommented as well as with commented
db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play"
db.default.user=sa
db.default.password=""
db.default.jndiName=DefaultDS
# end of 'db.*'
ebean.default="models.*"
# Root logger:
logger.root=ERROR

# Logger used by the framework:
logger.play=INFO

# Logger provided to your application:
logger.application=DEBUG
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-13 14:11:34

根据本教程,测试createAndRetrieveUser()应该在test/models/ModelsTest.java中。你把它放进ApplicationTest.java里。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19912400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档