一時的に問題を解決したと思いましたが、まだ問題が残っています。
モデルレイヤーのspecs2テストを作成しようとしています。ダミーオブジェクトを挿入してから、クエリを実行して、データが期待どおりに出力されることを確認します。私の簡単なテストは次のようになります。
クラスModelSpecは仕様を拡張します{
def is = args(sequential = true)^super.isをオーバーライドします
オブジェクトFakeAppはFakeApplication()を拡張します
running(FakeApp){
println( "データベースのセットアップ")
val newUser = User(
email = "wfbarksdale@gmail.com"、
username = "weezybizzle"、
password = "nutterbutter")
User.save(newUser)
}
running(FakeApp){
「ユーザーモデル」は{
{で「ユーザー名で作成および取得」
println( "誰かを見つける")
User.findOneByUsername( "weezybizzle")はSomeである必要があります
}
{存在しないユーザーが見つかりません"
println( "誰も見つからない")
User.findOneByUsername( "nobody")はNoneである必要があります
}
}
}
}
そして、これが私が単体テストから得たスタックトレースです:
[情報]1つのScalaソースを/www/mojulo3/target/scala-2.9.1/test-classesにコンパイルしています...
データベースを設定する
誰かを見つける
誰も見つけない
[情報]ModelSpec
[情報]
[情報]ユーザーモデルは
[エラー] !ユーザー名で作成および取得
[エラー]IllegalStateException:このMongoは閉じられました(DBTCPConnector.java:123)
[エラー]com.mongodb.DBTCPConnector._checkClosed(DBTCPConnector.java:123)
[エラー]com.mongodb.DBTCPConnector.call(DBTCPConnector.java:207)
[エラー]com.mongodb.DBApiLayer$ MyCollection .__ find(DBApiLayer.java:313)
[エラー]com.mongodb.DBApiLayer$ MyCollection .__ find(DBApiLayer.java:298)
[エラー]com.mongodb.DBCollection.findOne(DBCollection.java:682)
[エラー]com.mongodb.DBCollection.findOne(DBCollection.java:661)
[エラー]com.mongodb.casbah.MongoCollectionBase$ class.findOne(MongoCollection.scala:225)
[エラー]com.mongodb.casbah.MongoCollection.findOne(MongoCollection.scala:897)
[エラー]com.novus.salat.dao.SalatDAO.findOne(SalatDAO.scala:311)
[エラー]models.User$ .findOneByUsername(User.scala:24)
[エラー]test.ModelSpec$$ anonfun $ 3 $$ anonfun $ apply $ 1 $$ anonfun $ apply $ 2 $$ anonfun $ apply $ 3.apply(ModelSpec.scala:29)
[エラー]test.ModelSpec$$ anonfun $ 3 $$ anonfun $ apply $ 1 $$ anonfun $ apply $ 2 $$ anonfun $ apply $ 3.apply(ModelSpec.scala:29)
[エラー]test.ModelSpec$$ anonfun $ 3 $$ anonfun $ apply $ 1 $$ anonfun $ apply $ 2.apply(ModelSpec.scala:29)
[エラー]test.ModelSpec$$ anonfun $ 3 $$ anonfun $ apply $ 1 $$ anonfun $ apply $ 2.apply(ModelSpec.scala:27)
[エラー] !存在しないユーザーが見つかりません
[エラー]IllegalStateException:このMongoは閉じられました(DBTCPConnector.java:123)
[エラー]com.mongodb.DBTCPConnector._checkClosed(DBTCPConnector.java:123)
[エラー]com.mongodb.DBTCPConnector.call(DBTCPConnector.java:207)
[エラー]com.mongodb.DBApiLayer$ MyCollection .__ find(DBApiLayer.java:313)
[エラー]com.mongodb.DBApiLayer$ MyCollection .__ find(DBApiLayer.java:298)
[エラー]com.mongodb.DBCollection.findOne(DBCollection.java:682)
[エラー]com.mongodb.DBCollection.findOne(DBCollection.java:661)
[エラー]com.mongodb.casbah.MongoCollectionBase$ class.findOne(MongoCollection.scala:225)
[エラー]com.mongodb.casbah.MongoCollection.findOne(MongoCollection.scala:897)
[エラー]com.novus.salat.dao.SalatDAO.findOne(SalatDAO.scala:311)
[エラー]models.User$ .findOneByUsername(User.scala:24)
[エラー]test.ModelSpec$$ anonfun $ 3 $$ anonfun $ apply $ 1 $$ anonfun $ apply $ 6 $$ anonfun $ apply $ 7.apply(ModelSpec.scala:35)
[エラー]test.ModelSpec$$ anonfun $ 3 $$ anonfun $ apply $ 1 $$ anonfun $ apply $ 6 $$ anonfun $ apply $ 7.apply(ModelSpec.scala:35)
[エラー]test.ModelSpec$$ anonfun $ 3 $$ anonfun $ apply $ 1 $$ anonfun $ apply $ 6.apply(ModelSpec.scala:35)
[エラー]test.ModelSpec$$ anonfun $ 3 $$ anonfun $ apply $ 1 $$ anonfun $ apply $ 6.apply(ModelSpec.scala:33)
[情報]
[情報]
[情報]仕様ModelSpecの合計
[情報]20ミリ秒で終了
[情報]2つの例、0の失敗、2つのエラー
[情報]
[エラー]エラー:合計2、失敗0、エラー2、合格0、スキップ0
[エラー]テスト中のエラー:
[エラー]test.ModelSpec
[エラー]{file:/ www / mojulo3 /} mojulo3 / test:test:テストが失敗しました
[エラー]合計時間:4秒、完了2012年8月28日22:02:33
FakeAppが何らかの理由でデータベースから切断されており、再接続されていないようです。Playソースを調べたところ、実際に同じオブジェクトであるかどうかに関係なく、アプリケーションが停止して再起動するようです。onStop()問題はサラッ法に起因しているのonStart()ではないかと思いますが、よくわかりません。
私はこれにしばらく苦労してきましたが、問題について推論する方法だけでも、どんな助けでも大歓迎です。