2015-12-11 15 views
6

私はユニットテストのサポートでCassandraのgolangクライアントを探しています。私はGolangクライアントfor Cassandra

  1. Goosie(これ以上維持されていない)
  2. gocql(なしのテストをサポートする任意のクライアントライブラリは私のために無用である)
  3. gocassa(上記と同じ問題)
のようないくつかのライブラリを発見しました

誰かが私に探しているものを持っているクライアントのlibを教えてもらえますか?アプリケーションコードで

type CassAPI interface { 
    GetFoo(rowKey string) (someType, error) 
} 

type CassWrapper struct { 
    cass *gocql.Session 
} 

func (cw *CassWrapper) GetFoo(rowKey string) (someType, error) { 
    // do things with cw.cass 
    return someType 
} 

、CassWrapperのインスタンスが使用されるであろう、そしていくつかのモックまたはスタブのインスタンスをテスト中:これは私がコメントにに言及したものの非常に単純な例である

+0

テストのサポートはどういう意味ですか? gocqlははるかに成熟し、大きく貢献しています。 – PieOhPah

+0

gocqlとcan unitを使ってテストします。主に、基になるgocqlクライアントコードのプロキシとして機能する独自のインタフェースを定義する必要がありますが、実装をスタブまたはモックで置き換えることができます。 – sberry

+0

@sberry gocqlでcassandraとやりとりするために使用する* gocql.Sessionは、インタフェースではありません。模擬実装をどのように提供しますか?あなたが持っているコードを教えていただけますか? – tazo

答えて

2

CassAPIの同じインターフェースを遵守したものが使用されます。

+0

しかし、データベースの状態はどのように使用されていますか?たとえば、Cassandraの読み込みが失敗すると思われる場合、疑似コードはその失敗を通知するためにどのように知ることができますか? –