0

http://www.playframework.com/documentation/2.2.x/JavaGuide2のガイドを一通り調べようとして いますが、いくつかの説明が欠けているため、迷ってしまいます。もっと正確に言うと:a)「ユーザークラスから始める」段落の最後で、エラーが発生するはずでした。私はしませんでした。「どうでもいい」と思って先に進みましたが、今思えば間違いだったのかもしれません。b) 「最初のテスト」に進みましたが、テストをどこに置くべきかが書かれていませんでした。それで、ApplicationTest.java に入れました。ただし、ebeanが定義されていないと言って、テストに失敗しました。それで、少しグーグルした後ebean.default="models.*"、application.confに追加しようとしました。うまくいきましたが、今は

[error] Test ApplicationTest.createAndRetrieveUser failed: 
javax.persistence.PersistenceException:
java.sql.SQLException: Attempting to obtain a connection from a pool 
that has already been shutdown.

何が悪いのかわかりません。

私のアプリケーションテスト

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);
}

}

ユーザークラス

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
); 
}

アプリケーション.conf

#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
4

1 に答える 1

0

チュートリアルによるテストcreateAndRetrieveUser()は にあるはずですtest/models/ModelsTest.java。あなたはそれを入れますApplicationTest.java

于 2013-11-13T14:11:34.890 に答える