NSubistitute, NLog - Утвердить объекты результата - PullRequest
0 голосов
/ 05 сентября 2018

Я новичок в написании модульных тестов, пробую несколько уроков по 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);
    }
...