単体テストで「System.InvalidOperationException: The Connection is not open.」というエラーが発生し続けます。
テスト
[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 サーバーへの接続です。