c# - 如何使用 C# 为 Snowflake 编写 MS 单元测试
问题描述
我正在使用 Snowflake 连接器将我的 .NET Core 应用程序与 Snowflake 进行通信。我的要求是为存储库层编写 MS 单元测试
我的存储库类如下所示:
using (IDbConnection conn = new SnowflakeDbConnection())
{
conn.ConnectionString = ConnectionString;
conn.Open();
var cmd = conn.CreateCommand();
cmd.CommandText = $"SELECT * from TABLENAME";
var reader = cmd.ExecuteReader();
while (reader.Read())
{
--do some operation
}
conn.Close();
}
我是否需要对原始 Snowflake 帐户执行单元测试,或者是否有像 In-Memory 这样的方法?
你能帮我解决这个问题吗?
解决方案
避免与实现细节紧密耦合。专注于实现所需的逻辑并抽象出任何第 3 方的关注点。
创建一个简单的连接工厂抽象
public interface IDbConnectionFactory {
IDbConnection CreateConnection();
}
通过一个简单的实现。
public class SnowflakeDbConnectionFactory: IDbConnectionFactory {
public IDbConnection CreateConnection() {
return new SnowflakeDbConnection();
}
}
存储库将明确依赖于工厂抽象并利用它
using (IDbConnection conn = factory.CreateConnection()) {
conn.ConnectionString = ConnectionString;
conn.Open();
IDbCommand cmd = conn.CreateCommand();
cmd.CommandText = $"SELECT * from TABLENAME";
var reader = cmd.ExecuteReader();
while (reader.Read()) {
//--do some operation
}
conn.Close();
}
这将允许在单独测试代码时模拟/存根抽象。(即:单元测试)
推荐阅读
- swift - 有没有办法在 SwiftUI 中与 Pull to Refresh 相反
- keras - 每 N 个批次计算直方图/嵌入
- reactjs - 无法使用前端 react/axios 将 encType="multipart/formdata" 的表单数据发送到后端节点/multer
- jquery - 使用服务器端处理对 DataTables 进行分页
- javascript - 使用css中的关键帧沿正方形方向移动圆圈
- c - 初始化器元素在 C 编译器中不是常量
- windows - 我无法使用此代码在我的活动目录中获取用户
- salesforce - 如何使用自定义设置在 Salesforce 中添加假期列表
- python - 在管理员中选择链接
- python - 如何在 python 中匹配数据框的行,根据正确匹配创建新列?