如何解决单元测试 BoundStatement
我正在使用 PreparedStatement
构建 BoundStatement
,如下所示:
public class Utils {
private PreparedStatement insertStatement;
private CqlSession session;
...
public void initialize() {
RegularInsert statement = ...;
insertStatement = session.prepare(statement.build());
}
public BoundStatement statementInsert() {
return insertStatement.bind();
}
}
据我所知,这是构建多次执行的查询的推荐方法。
在这个项目中,计算时间很关键,因此我使用 session.executeAsync
以异步方式执行它们:
public class StatementsLoader {
...
public static void main(String[] argv) {
new StatementsLoader()
.load()
.forEach(session::executeAsync);
}
public Stream<BoundStatement> load() {
Set<BoundStatement> collection = new HashSet<>();
// Here goes a `for` loop!
BoundStatement statement = utils.statementInsert();
collection.add(statement.setString(...).setInt(...));
return collection.stream();
}
}
到目前为止,一切都按预期进行。但是我应该如何对 load()
方法进行单元测试?我不知道如何模拟 Cassandra 的 session
来准备语句,也不知道如何比较 BoundStatement
s(我曾经这样做:assertEquals(expectedSimpleStatement.toString(),regularSimpleStatement.toString());
,但 {{ 1}}).
另一方面,有没有办法将 BoundStatement
(datastax-java-driver
) 执行的语句记录到文件中?
非常感谢任何建议!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。