VS2010 - модульные тесты БД для нагрузочного тестирования - PullRequest
0 голосов
/ 18 ноября 2011

У меня проблемы с юнит-тестами для нагрузочных тестов в Ulimate VS2010. То, что я хотел бы сделать, это проверить производительность для методов Add и Remove (to / from DB). Метод AddCompany возвращает добавленную компанию, чем я хотел бы поместить ее в коллекцию (arraylist) и позже использовать в RemoveCompany. Проблема с этим arraylist. Он работает для модульных тестов, когда он статичен (я использую OrderedTest), но когда я использую этот OrderedTest в LoadTests, возникают сбои. Какой тип поля должен быть у этого массива и как его нужно инициализировать?

[TestClass()]
public class ServiceProxyTest
{
    private TestContext testContextInstance;
    private static ArrayList temp = new ArrayList();
    private ServiceProxy target;

    [ClassInitialize]
    public static void MyClassInitialize(TestContext testContext)
    {
    }

    [TestInitialize]
    public void MyTestInitialize()
    {
        this.target = new ServiceProxy();

    }

    [TestMethod]
    [TestCategory("Unit")]
    [DataSource("System.Data.SqlClient", "...", "...", DataAccessMethod.Sequential)]
    public void AddCompanyTest()
    {
        Company companyDto = new Company
            {
               ...
        };

        var company = this.target.AddCompany(companyDto);
        temp.Add(company);

        Assert.InNotNull(company);
        Assert.AreEqual(companyDto.Name, company.Name);
    }


    [TestMethod]
    [TestCategory("Unit")]
    [DataSource("System.Data.SqlClient", "...", "...", DataAccessMethod.Sequential)]
    public void RemoveCompanyTest()
    {
        try
        {
            if(temp.Count > 0)
            {
                var company = temp[temp.Count - 1] as Company;
                this.target.RemoveCompany(company);
                Assert.IsTrue(true);
            }
            else
            {
                Assert.Fail("No items to delete");
            }

        }
        catch (FaultException)
        {
            Assert.Fail("FaultException thrown - something went wrong...");
        }
    }
}

Любой

1 Ответ

1 голос
/ 19 ноября 2011

Способ, который они предлагают сделать, это сохранить ArrayList в TestContext. Вы можете сделать это с помощью этого кода: testContextInstance.Add ("myArrayList", temp); И вы можете получить его с помощью ArrayList temp = (ArrayList) testContextInstance ["myArrayList"];

...