Не могу заставить тест пройти школьную работу без ошибок.C#

Место общения программистов C#
Anonymous
Не могу заставить тест пройти школьную работу без ошибок.

Сообщение Anonymous »

Я работаю над школьными заданиями и застрял на пару дней. Даже не ищу кого-то, кто сделает это за меня, просто ищу направление, в котором можно указать. Мне дана дата (Date(1, 1, 2014)) и мне нужно получить функцию, которая вернет смещение этой даты. месяц. Я не знаю, как связать мой конструктор Date с перечислениями, которые я создал для предыдущих тестов, и даже не знаю, что мне вообще следует делать. Вот пара тестов, которые были пройдены перед нынешним.
// Find the name of a day of the week
[TestMethod]
public void GetDayNameFromEnum()
{
Assert.AreEqual("Sunday", Date.DayOfWeek.Sunday.ToString());
Assert.AreEqual("Monday", Date.DayOfWeek.Monday.ToString());
Assert.AreEqual("Tuesday", Date.DayOfWeek.Tuesday.ToString());
Assert.AreEqual("Wednesday", Date.DayOfWeek.Wednesday.ToString());
Assert.AreEqual("Thursday", Date.DayOfWeek.Thursday.ToString());
Assert.AreEqual("Friday", Date.DayOfWeek.Friday.ToString());
Assert.AreEqual("Saturday", Date.DayOfWeek.Saturday.ToString());
}

// Get a month name from the enum
[TestMethod]
public void MonthNameFromEnum()
{
Assert.AreEqual("January", Date.MonthName.January.ToString());
Assert.AreEqual("February", Date.MonthName.February.ToString());
Assert.AreEqual("March", Date.MonthName.March.ToString());
Assert.AreEqual("April", Date.MonthName.April.ToString());
Assert.AreEqual("May", Date.MonthName.May.ToString());
Assert.AreEqual("June", Date.MonthName.June.ToString());
Assert.AreEqual("July", Date.MonthName.July.ToString());
Assert.AreEqual("August", Date.MonthName.August.ToString());
Assert.AreEqual("September", Date.MonthName.September.ToString());
Assert.AreEqual("October", Date.MonthName.October.ToString());
Assert.AreEqual("November", Date.MonthName.November.ToString());
Assert.AreEqual("December", Date.MonthName.December.ToString());
}

// Find the start day for each month
[TestMethod]
public void TestMonthOffsetEnums()
{
Assert.AreEqual(0, (int)Date.Offset.January);
Assert.AreEqual(3, (int)Date.Offset.February);
Assert.AreEqual(3, (int)Date.Offset.March);
Assert.AreEqual(6, (int)Date.Offset.April);
Assert.AreEqual(1, (int)Date.Offset.May);
Assert.AreEqual(4, (int)Date.Offset.June);
Assert.AreEqual(6, (int)Date.Offset.July);
Assert.AreEqual(2, (int)Date.Offset.August);
Assert.AreEqual(5, (int)Date.Offset.September);
Assert.AreEqual(0, (int)Date.Offset.October);
Assert.AreEqual(3, (int)Date.Offset.November);
Assert.AreEqual(5, (int)Date.Offset.December);
}

// Find the month offset for a given date
[TestMethod]
public void GetMonthOffsetForSpecifiedDate()
{
Date janDate = new Date(1, 1, 2014);
Assert.AreEqual(Date.Offset.January, janDate.GetMonthOffset());

Date junDate = new Date(6, 16, 2014);
Assert.AreEqual(Date.Offset.June, junDate.GetMonthOffset());

Date decDate = new Date(12, 12, 2014);
Assert.AreEqual(Date.Offset.December, decDate.GetMonthOffset());
}

Вот что сейчас представляет собой мой класс Date. Последний тест сообщает, что AreEqual для janDate не удался, потому что ожидался октябрь, а был май. Но, насколько я понимаю, ни один из этих месяцев не должен быть получен. Я не уверен, что точно понимаю, что мне здесь делать.
public class Date
{
public int Day { get; set; }
public int Month { get; set; }
public int Year { get; set; }

public Date(int month, int day, int year)
{
Day = day;
Month = month;
Year = year;
}

public enum DayOfWeek { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday }

public enum MonthName { January = 1, February, March, April, May, June, July, August, September, October, November, December }

public enum Offset { January = 0, February = 3, March = 3, April = 6, May = 1, June = 4, July = 6, August = 2, September = 5, October = 0, November = 3, December = 5 }

public Offset GetMonthOffset()
{

return (Offset) Month;
}
}


Подробнее здесь: https://stackoverflow.com/questions/781 ... t-an-error

Вернуться в «C#»