2

ここは一見シンプルに見えます。単体テストを使用して、このコード ブロックの例外処理をテストするにはどうすればよいですか?

    public DbFactoryResponseType Close()
    {
        DbFactoryResponseType dbFactoryResponse = new DbFactoryResponseType();
        try
        {
            if (m_isConnected)
            {
                m_isConnected = false;

                if (m_hasRecordSet)
                {
                    m_hasRecordSet = false;

                    m_dbFactoryDatabaseDataReader.Close();
                    m_dbFactoryDatabaseDataReader.Dispose();
                }

                m_dbFactoryDatabaseCommand.Dispose();
                m_dbFactoryDatabaseConnection.Close();
                m_dbFactoryDatabaseConnection.Dispose();

            }

            dbFactoryResponse.ExceptionMessage = "";
            dbFactoryResponse.Success = true;
            dbFactoryResponse.UserFriendlyMessage = "OK";

            return dbFactoryResponse;
        }
        catch (Exception ex)
        {
            dbFactoryResponse.ExceptionMessage = ex.Message;
            dbFactoryResponse.Success = false;
            dbFactoryResponse.UserFriendlyMessage = "Error: Error while attempting to close the database connection.";

            return dbFactoryResponse;
        }
    }

ここに私がこれまでに持っているものがありますが、例外を発生させて出力をテストする方法がわかりません。

    /// <summary>
    /// Test method to test closing a PosgreSQL database connection.
    /// </summary>
    [TestMethod]
    public void TestClosePostgreSQLConnectionException()
    {
        const string connectionString = "Server=myIp;Port=myPort;Database=myDatabase;User Id=myUser;Password=myPassword;";

        const string provider = "Npgsql";

        DbProviderFactoryConnection aDbProviderFactoryConnection = new DbProviderFactoryConnection(connectionString, provider);

        DbFactoryResponseType dbFactoryResponseType = aDbProviderFactoryConnection.Close();

        Assert.IsNotNull(dbFactoryResponseType);

        Assert.AreEqual(false, dbFactoryResponseType.Success);
    }  
4

1 に答える 1