Предположим: VS2010, .NET 4, C #, NUnit, Moq
Я новичок в TDD и столкнулся с этой проблемой, работая над проектом.
Учитывая класс:
public abstract class MyFileType
{
public MyFileType(String fullPathToFile)
{
if (!File.Exists(fullPathToFile))
{
throw new FileNotFoundException();
}
// method continues
}
}
Я пытаюсь проверить это методом:
[Test]
[ExpectedException(typeof(System.IO.FileNotFoundException))]
public void MyFileType_CreationWithNonexistingPath_ExceptionThrown()
{
String nonexistingPath = "C:\\does\\not\\exist\\file.ext";
var mock = new Mock<MyFileType>(nonexistingPath);
}
Тест не пройден, и NUnit сообщает, что исключение не было выдано.
Я нашел раздел в документах NUnit , в котором говорится об утверждении с исключениями, но примеры не были похожи на то, что я пытаюсь сделать. Я все еще начинаю работать с NUnit и Moq, так что могу ошибаться.
UPDATE:
Чтобы прояснить, почему в этом примере используется абстрактный класс, это базовый класс типов файлов серии, где только загрузка и удаление данных будут различаться между подклассами. Сначала я хотел поместить логику открытия / настройки в базовый класс, поскольку он одинаков для всех типов.