我的单元测试不断收到以下错误:“System.InvalidOperationException:Connection未打开。”
[TestFixture]
public class Test
{
[Test]
public void Test1()
{
NpgsqlConnection connection = MockRepository.GenerateStub<NpgsqlConnection>();
// Tried to fake the open connection
connection.Stub(x => x.State).Return(ConnectionState.Open);
connection.Stub(x => x.FullState).Return(ConnectionState.Open);
DbQueries queries = new DbQueries(connection);
bool procedure = queries.ExecutePreProcedure("201003");
Assert.IsTrue(procedure);
}
}
using System.Data;
using Npgsql;
public class DbQueries
{
private readonly NpgsqlConnection _connection;
public DbQueries(NpgsqlConnection connection)
{
_connection = connection;
}
public bool ExecutePreProcedure(string date)
{
var command = new NpgsqlCommand("name_of_procedure", _connection);
command.CommandType = CommandType.StoredProcedure;
NpgsqlParameter parameter = new NpgsqlParameter {DbType = DbType.String, Value = date};
command.Parameters.Add(parameter);
command.ExecuteScalar();
return true;
}
}
您如何使用Rhino Mocks 3.6测试代码?
PS。 NpgsqlConnection是与PostgreSQL服务器的连接。
答案 0 :(得分:1)
您的方法存在一些问题:
所以我的方法是不对这个类运行任何单元测试,因为它实际上只是第三方库的包装器。转而进行集成测试(因此创建一个测试数据库并连接到它)。