Почему тесты не оцениваются должным образом, даже если функция работает правильно? - PullRequest
0 голосов
/ 13 февраля 2020

Я добавил MSTests в мой C# проект WinForms. Чтобы проверить, работают ли они правильно, я хотел проверить следующую функцию:

public static bool IsValidEmail(string email)
{
    return new EmailAddressAttribute().IsValid(email);
}

. Для этого я написал следующие два теста:

[TestMethod]
public void Test_IsValidEmail_True()
{
    Assert.IsTrue(IsValidEmail("test@test.pl"),"Good mail test");
}
[TestMethod]
public void Test_IsValidEmail_False()
{
    Assert.IsFalse(IsValidEmail("test@test"), "Bad mail test");
}

Функция работает правильно и проверяет если адрес электронной почты правильный.

Это означает, что функция IsValidEmail("test@test") возвращает false. Однако второй тест проходит, только если я ввожу его, например, с «test», но если я введу test@test, он не пройдет и выдаст:

Сообщение: сбой Assert.IsFalse. Тест плохой почты

Почему этот тест не пройден?

Вот как я тестировал функцию, если она работает вручную:

MessageBox.Show("test@test.pl - " + IsValidEmail("test@test.pl"));
MessageBox.Show("test@test - " + IsValidEmail("test@test"));

test 1 test 2

...