Здравствуйте.
Я хочу с помощью 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)Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники