Здравствуйте.
Я хочу с помощью Unit Test
проверить, или моя функция правильно работает и не знаю как заменить блок if-else
?
[TestMethod]
public void Test_CreateDatabase()
{
String database = "test_db";
Program.CreateDatabase(@"C:\Temp\create_database.sql", database);
String sqlConnectionString = String.Format("Server = server;
Database = {0}; Trusted_Connection = True;", database);
String countTables = "SELECT COUNT(*) FROM information_schema.tables ";
using (SqlConnection connection = new SqlConnection(sqlConnectionString))
{
var server = new Server(new ServerConnection(connection));
var result = server.ConnectionContext.ExecuteScalar(countTables);
if (result != 0)
{
bool temp = true;
}
else
{
bool temp = false;
}
}
}
Assert - класс - проверяет условия в модульных тестов с помощью
утверждения "Истина/Ложь". Этот класс содержит набор статических методов, которые оценивают
логическое условие. Если это условие принимает значение true
, передает
утверждения. Утверждение проверяет предположение истинности для
сравниваемых условий. Если проверяемое
условие не выполняется, утверждение признается ложным.
Рассмотрим несколько примеров тестов, на основании Вашего кода в вопросе с небольшими пояснениями и отступлениями.
Тест с использованием метода Assert.AreEqual (Метод проверяет, что указанные значения равны). Тест будет считаться завершенным успешно, если result
будет равен 0
:
[TestMethod]
public void TestMethodAssertAreEqual()
{
var result = 0; // предположим, что мы получили это значение
Assert.AreEqual(0, result);
}
Тест с использованием метода Assert.AreNotEqual (Метод проверяет, что указанные значения не равны). Тест будет считаться завершенным успешно, если result
не будет равен 1
, к примеру 0
- успешное завершение теста:
[TestMethod]
public void TestMethodAssertAreNotEqual()
{
var result = 0; // предположим, что мы получили это значение
Assert.AreNotEqual(1, result);
}
Также рассмотрим ситуацию, когда во время выполнения метода возникает исключение, которое является ожидаемым. К примеру передали в метод параметр, который вызывает исключение. Для этого нам поможет аттрибут ExpectedExceptionAttribute. Пример кода:
[TestMethod]
[ExpectedException(typeof(Exception))]
public void TestExpectedException()
{
var result = server.ConnectionContext.ExecuteScalar(0); // передадим плохой параметр
}
Просто предположим, что если в метод server.ConnectionContext.ExecuteScalar
передать 0
, то должно возникнуть исключение, если у теста будет аттрибут ExpectedExceptionAttribute, то тест отработает успешно.
Полезные ссылки для изучения:
Assert
)Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
При изменении свойства через TwoWay binding не производится работа с переменной, только со свойством зависимости
Хочу, чтобы на локскрине (экране блокировки) отображался блокнотикКод обваливается на этой строчке:
Мне в цикле надо перебрать абсолютно все control'ы в форме (в том числе и их дети)С пом
Друзья, написал программу "Гонки кнопок", подскажите, что сделать, чтобы за каждой кнопкой шел след(линия):