Главный. Незначительный. BugFix. SVNRevision
, например: 3.5.2.31578
Думаю, вы ищете этот вопрос и этот пост в блоге . Я только обернул System.IO.File и System.IO.Directory. Ни FileInfo, ни прочего.
What's wrong with System.IO.FileInfo?
I was curious, so started to create a set of wrappers using ReSharper. It took me 16 minutes, and I haven't tested it, and don't know if it meets your needs. Still, I thought I'd outline the process I used:
The result is interfaces that include the methods and properties of the corresponding classes, and concrete classes that delegate to the original classes and implement the interfaces. You should then be able to create your own mock classes, and change your code to use the interfaces instead of directly using the System.IO concrete classes.
Мне любопытно, что такого ужасного в дизайне пространства имен System.IO
. Конечно, выбор определенного интерфейса или класса может быть в некоторой степени произвольным упражнением, но я не знаком с проблемой необходимости передавать строки повсюду.
Возможно, вы могли бы предоставить дополнительную информацию о вашей конкретной проблеме. ?
РЕДАКТИРОВАТЬ
Кажется, вы указываете, что вам нужны классы, основанные на пространстве имен System.IO
, что позволит вам тестировать без записи в файловую систему. Я не вижу, как можно адекватно протестировать функцию, которая записывает в файловую систему без нее, ну, ну, записывая в файловую систему. Если вы хотите проверить свою логику с точки зрения письма, то позвольте функциям принимать System.IO.Stream
или System.IO. TextWriter
, в зависимости от того, что больше подходит. Это позволит вам протестировать различные компоненты вашего кода без необходимости иметь какое-либо внешнее влияние; просто передайте System.IO.MemoryStream
вместо System.IO.FileStream
. Очевидно, вы не столкнетесь с такими проблемами, как нехватка места, отказ в доступе и т. Д., Но вы никогда не столкнетесь с этими ошибками, не запустив в реальном времени файловую систему. Вот почему вы можете предоставить внешние функции, которые принимают System.IO.FileInfo
или строковый путь (или массив / IEnumerable <>
любого из них, что вам нужно), которые могут предоставить другой уровень живого тестирования.
Пространство имен System.IO
довольно хорошо заполнено, и я никогда не сталкивался с тем, что используется особо не объектно-ориентированный подход.
System.IO.MemoryStream
вместо System.IO.FileStream
. Очевидно, вы не столкнетесь с такими проблемами, как нехватка места, отказ в доступе и т. Д., Но вы никогда не столкнетесь с этими ошибками, не запустив в реальном времени файловую систему. Вот почему вы можете предоставить внешние функции, которые принимают System.IO.FileInfo
или строковый путь (или массив / IEnumerable <>
любого из них, что вам нужно), которые могут предоставить другой уровень живого тестирования.
Пространство имен System.IO
довольно хорошо заполнено, и я никогда не сталкивался с тем, что используется особо не объектно-ориентированный подход.
System.IO.MemoryStream
вместо System.IO.FileStream
. Очевидно, вы не столкнетесь с такими проблемами, как нехватка места, отказ в доступе и т. Д., Но вы никогда не столкнетесь с этими ошибками, не запустив в реальном времени файловую систему. Вот почему вы можете предоставить внешние функции, которые принимают System.IO.FileInfo
или строковый путь (или массив / IEnumerable <>
любого из них, что вам нужно), которые могут предоставить другой уровень живого тестирования.
Пространство имен System.IO
довольно хорошо заполнено, и я никогда не сталкивался с тем, что используется особо не объектно-ориентированный подход.
System.IO.MemoryStream
вместо System.IO.FileStream
. Очевидно, вы не столкнетесь с такими проблемами, как нехватка места, отказ в доступе и т. Д., Но вы никогда не столкнетесь с этими ошибками, не запустив в реальном времени файловую систему. Вот почему вы можете предоставить внешние функции, которые принимают System.IO.FileInfo
или строковый путь (или массив / IEnumerable <>
любого из них, что вам нужно), которые могут предоставить другой уровень живого тестирования.
Пространство имен System.IO
довольно хорошо заполнено, и я никогда не сталкивался с тем, что используется особо не объектно-ориентированный подход.
System.IO.MemoryStream
вместо System.IO.FileStream
. Очевидно, вы не столкнетесь с такими проблемами, как нехватка места, отказ в доступе и т. Д., Но вы никогда не столкнетесь с этими ошибками, не запустив в реальном времени файловую систему. Вот почему вы можете предоставить внешние функции, которые принимают System.IO.FileInfo
или строковый путь (или массив / IEnumerable <>
любого из них, что вам нужно), которые могут предоставить другой уровень живого тестирования.
Пространство имен System.IO
довольно хорошо заполнено, и я никогда не сталкивался с тем, что используется особо не объектно-ориентированный подход.
System.IO.MemoryStream
вместо System.IO.FileStream
. Очевидно, вы не столкнетесь с такими проблемами, как нехватка места, отказ в доступе и т. Д., Но вы никогда не столкнетесь с этими ошибками, не запустив в реальном времени файловую систему. Вот почему вы можете предоставить внешние функции, которые принимают System.IO.FileInfo
или строковый путь (или массив / IEnumerable <>
любого из них, что вам нужно), которые могут предоставить другой уровень живого тестирования.
Пространство имен System.IO
довольно хорошо заполнено, и я никогда не сталкивался с тем, что используется особо не объектно-ориентированный подход.
System.IO.MemoryStream
вместо System.IO.FileStream
. Очевидно, вы не столкнетесь с такими проблемами, как нехватка места, отказ в доступе и т. Д., Но вы никогда не столкнетесь с этими ошибками, не запустив в реальном времени файловую систему. Вот почему вы можете предоставить внешние функции, которые принимают System.IO.FileInfo
или строковый путь (или массив / IEnumerable <>
любого из них, что вам нужно), которые могут предоставить другой уровень живого тестирования.
Пространство имен System.IO
довольно хорошо заполнено, и я никогда не сталкивался с тем, что используется особо не объектно-ориентированный подход.
System.IO.FileInfo
или строковый путь (или массив / IEnumerable <>
любого из них, что вам нужно), которые могут предоставить другой уровень живого тестирования.
Пространство имен System.IO
довольно хорошо заполнено, и я никогда не сталкивался с тем, что используется особо не объектно-ориентированный подход.
System.IO.FileInfo
или строковый путь (или массив / IEnumerable <>
любого из них, что вам нужно), которые могут предоставить другой уровень живого тестирования.
Пространство имен System.IO
довольно хорошо заполнено, и я никогда не сталкивался с тем, что используется особо не объектно-ориентированный подход.
Как указывает Роберт, вы можете установить Mylyn и Trac Connector в среду выполнения Eclipse, чтобы получить базовую функциональность. Tasktop необходим, если вам нужна дальнейшая интеграция с рабочим столом, например
Tasktop также предоставляет доступ к дополнительным соединителям , если они вам нужны.
Хотя Tasktop Pro не является бесплатным, я призываю вас оценить ценность экономии времени, которую дает Tasktop. Если ваша организация заинтересована в Tasktop для вашей команды, Это - это статья, о которой я говорил.
И это API (созданный из проекта ndepend