使用ScalateTest测试reactivemongo时引发异常

使用ScalateTest测试reactivemongo时引发异常,scala,reactivemongo,Scala,Reactivemongo,我正在尝试测试应用程序中的一些功能。我还有其他测试(针对reactivemongo的ScalateTest)并且正在工作,但是有了这个测试,我得到了这个异常 [信息]-应保持并找到令牌*失败* [信息]future返回了一个类型为:reactivemongo.api.commands.bson.DefaultBSONCommandError的异常,消息为:CommandError[代码=26,errmsg=ns未找到,文档:{ [信息]正常:b双倍(0.0), [信息]错误消息:“未找到ns”,

我正在尝试测试应用程序中的一些功能。我还有其他测试(针对reactivemongo的ScalateTest)并且正在工作,但是有了这个测试,我得到了这个异常

[信息]-应保持并找到令牌*失败* [信息]future返回了一个类型为:reactivemongo.api.commands.bson.DefaultBSONCommandError的异常,消息为:CommandError[代码=26,errmsg=ns未找到,文档:{ [信息]正常:b双倍(0.0), [信息]错误消息:“未找到ns”, [信息]代码:BSONInteger(26) [信息]}。(DaosApplicationSpecOneAppPerTest.scala:74)

这是测试的代码(两者都抛出相同的错误)

UserTokenDao实现

class UserTokenDaoMongo extends UserTokenDao {

  lazy val reactiveMongoApi = current.injector.instanceOf[ReactiveMongoApi]
  val tokens = reactiveMongoApi.db.collection[JSONCollection]("tokens")

  def find(id:UUID):Future[Option[UserToken]] =
      tokens.find(Json.obj("id" -> id)).one[UserToken]

  def save(token:UserToken):Future[UserToken] = for {
    _ <- tokens.insert(token)
  } yield token

  def remove(id:UUID):Future[Unit] = for {
    _ <- tokens.remove(Json.obj("id" -> id))
  } yield ()

}
类UserTokenDaoMongo扩展了UserTokenDao{ lazy val reactiveMongoApi=当前.injector.instanceOf[reactiveMongoApi] val tokens=reactiveMongoApi.db.collection[JSONCollection](“tokens”) def find(id:UUID):未来[选项[UserToken]]= find(Json.obj(“id”->id)).one[UserToken] def save(令牌:UserToken):Future[UserToken]=for{ _一个[用户令牌] def save(令牌:UserToken):Future[UserToken]=for{
_问题在于收集令牌不存在。我进入mongo控制台,然后创建了收集,测试开始工作。

您可以查看。
def withUserTokenDao[T](t: UserTokenDao => T):T = running(app) {
  val userTokenDao = new UserTokenDaoMongo
  whenReady (userTokenDao.tokens.drop()) { result =>
    t(userTokenDao)
  }
}
class UserTokenDaoMongo extends UserTokenDao {

  lazy val reactiveMongoApi = current.injector.instanceOf[ReactiveMongoApi]
  val tokens = reactiveMongoApi.db.collection[JSONCollection]("tokens")

  def find(id:UUID):Future[Option[UserToken]] =
      tokens.find(Json.obj("id" -> id)).one[UserToken]

  def save(token:UserToken):Future[UserToken] = for {
    _ <- tokens.insert(token)
  } yield token

  def remove(id:UUID):Future[Unit] = for {
    _ <- tokens.remove(Json.obj("id" -> id))
  } yield ()

}
class UserTokenDaoMongo extends UserTokenDao {

  lazy val reactiveMongoApi = current.injector.instanceOf[ReactiveMongoApi]
  val tokens = reactiveMongoApi.db.collection[JSONCollection]("tokens")

  def find(id:UUID):Future[Option[UserToken]] =
      tokens.find(Json.obj("id" -> id)).one[UserToken]

  def save(token:UserToken):Future[UserToken] = for {
    _ <- tokens.insert(token)
  } yield token

  def remove(id:UUID):Future[Unit] = for {
    _ <- tokens.remove(Json.obj("id" -> id))
  } yield ()

}