1

次のNUnitコードがあります。[SetUp]内でswitchcaseステートメントを使用しています

テストを実行する前に、データベースにデータを挿入する必要があります。しかし、それはデータを挿入していません。ここで何を修正する必要がありますか?

参照:

  1. https://softwareengineering.stackexchange.com/questions/173651/nunit-setup-and-teardown

コード

     [SetUp]
    public void TestSetUp()
    {
        switch (TestContext.CurrentContext.Test.FullName)
        {
            case "GetApplicationsTest":
                GetApplicationsTestSETUPHElper();
                break;

            case "DeleteApplicationTest":
                GetApplicationsTestSETUPHElper();
                break;

        }


    }

    private void GetApplicationsTestSETUPHElper()
    {
        SqlConnection connection = new SqlConnection(connectionString);
        using (connection)
        {
            string commandText = "INSERT INTO Status_Type VALUES (889,'s2','UT s2')";
            SqlCommand command = new SqlCommand(commandText, connection);
            command.CommandType = System.Data.CommandType.Text;
            connection.Open();
            command.ExecuteNonQuery();
        }
    }

    private void DeleteApplicationTestSETUPHElper()
    {
        SqlConnection connection = new SqlConnection(connectionString);
        using (connection)
        {
            string commandText = "INSERT INTO Status_Type VALUES (890,'s3','UT s3')";
            SqlCommand command = new SqlCommand(commandText, connection);
            command.CommandType = System.Data.CommandType.Text;
            connection.Open();
            command.ExecuteNonQuery();
        }
    }

    [Test]
    public void GetApplicationsTest()
    {

        ApplicationBL application = new ApplicationBL(connectionString);
        ApplicationSearch applicationSearch = new ApplicationSearch();
        applicationSearch.ApplicationID = 1;
        //applicationSearch.ApplicationName = "Test1";
        //applicationSearch.ApplicationURL = "Test1";
        //applicationSearch.StatusCode = 1;
        Collection<Application> applications =  application.GetApplications(applicationSearch);
    }

    [Test]
    public void DeleteApplicationTest()
    {

        ApplicationBL application = new ApplicationBL(connectionString);
        ApplicationSearch applicationSearch = new ApplicationSearch();
        applicationSearch.ApplicationID = 1;
        //applicationSearch.ApplicationName = "Test1";
        //applicationSearch.ApplicationURL = "Test1";
        //applicationSearch.StatusCode = 1;
        Collection<Application> applications = application.GetApplications(applicationSearch);
    }
4

1 に答える 1

2
TestContext.CurrentContext.Test.FullName

はテストの完全修飾名であり、コードにある関数名だけではないため、修正は、テストの完全修飾名をcaseステートメントに含める必要があります。

于 2012-11-05T10:48:10.587 に答える