Напишите контрольный пример для проверки даты и времени NUnit - PullRequest
0 голосов
/ 08 апреля 2020

Я не могу проверить даты, например, день 1, день 2, день 3

public int dayInMonth(int month,int year)
    {
        if (month == 4 || month == 6 || month == 9 || month == 11)
        {
            return 30;
        }
        else if (month == 2)
        {
            if (year % 400 == 0)
            {
                return 29;
            }
            else if (year % 100 == 0)
            {
                return 28;
            }
            else if (year % 4 == 0)
            {
                return 29;
            }
            else return 28;
        }
        else
        {
            return 31;
        }      
    }

Мне нужно использовать NUnit для проверки. Но я не знаю, как написать контрольные примеры для этого метода

1 Ответ

1 голос
/ 08 апреля 2020

Разбейте свой тест на три части Упорядочить, действовать и утверждать Например,

// Arrange
var someObject = new SomeClass();
var year = 2020;
var month = 2;
var expectedResult = 29;

// Act
var actualResult = someObject.dayInMonth(year, month);

// Assert
Assert.AreEqual(expectedResult, actualResult);

Как упомянул пример @John, когда вам нужно запустить тест для нескольких входов, используйте параметры для TestCaseAttribute

ОБНОВЛЕНИЕ:

TestCaseAttribute example
[TestCase(2020, 1, ExpectedResult=31)]
[TestCase(2020, 2, ExpectedResult=29)]
[TestCase(2020, 3, ExpectedResult=31)]
public int DayInMonthTest(int year, int month)
{
    var someObject = new SomeClass();
    return someObject.dayInMonth(year, month);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...