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