Я новичок в написании модульных тестов, пробую несколько уроков по Nlog и NSubstitute.
Я пытаюсь написать модульные тесты для этого метода, и результатом, когда происходит исключение, является новый "CalendarDaysItem":
public CalendarDaysItem GetFullDate(int year, int month, int day, string culture = "pt-PT")
{
CalendarDaysItem model;
try
{
DateTime date = new DateTime(year, month, day);
string dayExntension = date.ToString("dddd", CultureInfo.CreateSpecificCulture(culture)).ToUppercaseFirst();
string monthExntension = date.ToString("MMMM", CultureInfo.CreateSpecificCulture(culture)).ToUppercaseFirst();
model = new CalendarDaysItem(year, month, day)
{
FullDate = dayExntension + ", " + day + " " + monthExntension + ", " + year,
};
}
catch (Exception ex)
{
model = new CalendarDaysItem();
LoggerManager.Log(LoggerManager.LoggerType.MAIN, LogLevel.Error, null, null, ex.Message);
}
return model;
}
Контрольный пример
[Test]
[TestCase(2018,8,37)]
public void GetFullDate_GetFullStringDateOutRange_ReturnEmptyDate(int year, int month, int day)
{
CalendarDaysItem calendar = new CalendarDaysItem();
var result = _substitute.GetFullDate(year, month, day).Returns(new CalendarDaysItem());
Assert.AreEqual(calendar, result);
}
Я уже пытался использовать Recived ().
Когда я использую этот объект календаря, он нулевой, и утверждение не выполняется.
Есть ли рекомендуемое руководство для начинающих по тестированию объектов?
ПРИМЕЧАНИЕ Я пишу этот тест, и он проходит:
[Test]
[TestCase(2018,8,27, "Segunda-feira, 27 Agosto, 2018")]
public void GetFullDate_GetFullStringDate_ReturnFullDate(int year, int month, int day, string expectedResult)
{
CalendarDaysItem calendar = new CalendarDaysItem(year, month, day)
{
FullDate = expectedResult,
};
var result = _substitute.GetFullDate(year, month, day).Returns(calendar);
Assert.AreEqual(calendar.FullDate, expectedResult);
}