Во-первых, не делайте этого:
DateTime date = new DateTime();
date = DateTime.Parse("2010-08-14");
Вы создаете новое время-дату, а затем выбрасываете его, когда разбираете строку, чтобы получить новое время-дата. Помните, что тестовый код все еще должен быть хорошимcode.
Во-вторых, хороший тест проверяет одну вещь.У вас может быть несколько тестов, таких как ReturnsCorrectNextSaturdayGivenAWednesday
, ReturnsCorrectNextSaturdayWhenCrossesEndOfMonth
и ReturnsCorrectNextSaturdayWhenCrossesEndOfYear
.
И, наконец, нет причин для насмешек.Было бы уместно использовать макет, если ваши DateExtensions вызваны в другой компонент (скажем, в базу данных), и вы хотите подделать этот вызов.Таким образом, вместо тестирования DateExtensions + Data Access, вы будете тестировать только DateExtensions, и когда он вызывает слой доступа к данным, это будет имитировать, что ваш тест настроен.