首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在TestCassandra中获取Cassandra会话的实例

如何在TestCassandra中获取Cassandra会话的实例
EN

Stack Overflow用户
提问于 2019-05-21 13:12:18
回答 1查看 65关注 0票数 0

我不知道如何对访问Cassandra的类进行单元测试。我可能需要重新设计!

我已经创建了一个Play Components类(https://www.playframework.com/documentation/2.6.x/api/scala/index.html#play.api.BuiltInComponentsFromContext),它在应用程序启动时创建一个cassandra会话。

代码语言:javascript
复制
trait CassandraRepositoryComponents {
  def environment: Environment
  def configuration: Configuration
  def applicationLifecycle: ApplicationLifecycle
...
lazy private val cassandraSession: Session = {
val cluster = new Cluster.Builder().
      addContactPoints(uri.hosts.toArray: _*).
      withPort(uri.port).
      withQueryOptions(new QueryOptions().setConsistencyLevel(defaultConsistencyLevel)).build
val session = cluster.connect
}

}

这样创建的会话将在实例化repo类时传递给我的repo类

代码语言:javascript
复制
class UsersRepository(utilities:HelperMethods, session: Session,tablename:String) 
  extends CassandraRepository[UserKeys,User](session, tablename, List("bucket","email"))  { 

//UsersRepository类不直接使用session。它将会话传递给最终调用session.execute来运行查询的CassandraRepository ...}

我想对UsersRepository进行单元测试。我正在使用embedded-cassandra来测试它,但是embedded-cassandra似乎没有提供一种方法来获取它创建的会话的实例。

question1 -有没有办法让TestCassandra启动Cassandra的会话?question2 -有没有更好的方法来组织课程?

EN

回答 1

Stack Overflow用户

发布于 2019-05-21 15:49:17

question1 -有没有办法让TestCassandra启动Cassandra的会话?

没有办法让TestCassandra启动CassandraSession

您可以使用com.github.nosan.embedded.cassandra.test.ClusterFactorycom.github.nosan.embedded.cassandra.test.CqlSessionFactory来创建ClusterCqlSession类。

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

https://stackoverflow.com/questions/56231475

复制
相关文章

相似问题

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