Я создаю список модульных тестов, которые зависят друг от друга.Например, мой первый тест создает запись в базе данных и проверяет, что возвращаемое значение больше 0.
Второй тест затем проверяет данные записи, созданной в первом тесте.Однако для этого требуется идентификатор записи, созданной в первом тесте.
Первоначально я вызвал второй тест из первого теста, чтобы я мог передать идентификатор в качестве параметра, который работал нормально, за исключением того, что это означало, чтопо сути, был только один тест.
Я создал упорядоченный список с идентификатором, объявленным вне области, но после первого модульного теста это значение возвращается к 0, поэтому, очевидно, второй модульный тест не пройден.
Есть ли способ создать тесты, чтобы они разделяли значение, полученное в первом тесте?
Код ниже:
[TestMethod]
public void TestNewLandlord_InsertIntoImportFiles_ReturnFileID()
{
try
{
DataSet ds = EngineBllUtility.InsertIntoImportFiles(connString, @"C:\Documents and Settings\dTrunley\My Documents", "HFISNewLandlordTest.csv",
"TestNewLandlord()", WindowsIdentity.GetCurrent().Name, "HFIS Landlords", "NA", 30247531, false);
importFileId = long.Parse(ds.Tables[0].Rows[0]["ImportFileID"].ToString());
Assert.IsTrue(importFileId > 0);
}
catch (Exception ex)
{
Assert.Fail(ex.Message);
}
}
[TestMethod]
public void TestNewLandlord_InsertIntoImportFiles_CorrectData()
{
try
{
using (SqlConnection connectionString = new SqlConnection(connString))
{
using (SqlCommand sqlCommand = new SqlCommand(
String.Format("SELECT * FROM [mydeposits].[import].[ImportFiles] WHERE [ImportFileID] = {0}", importFileId), connectionString))
{
connectionString.Open();
using (SqlDataReader dr = sqlCommand.ExecuteReader())
{
if (dr.HasRows)
{
bool correctData = true;
dr.Read();
if (!dr["ImportFileStatusID"].ToString().Equals("1"))
correctData = false;
if (!dr["HeadOfficeMemberID"].ToString().Equals("247531"))
correctData = false;
Assert.IsTrue(correctData);
TestCleanup();
}
else
throw new Exception("Import does not exist in database");
}
}
}
}
catch (Exception ex)
{
Assert.Fail(ex.Message);
TestCleanup();
}
}