Чтобы сделать еще одну попытку ответа: я думаю, что JollySin столкнулся с проблемой, но не объяснил достаточно (ИМХО)
Вы, похоже, взяли fileName
и попали в файловую систему системы в вашей GetStuff
метод.И это проблема, если вы хотите протестировать его.Вы должны запихнуть то, что вы делаете с файловой системой (открытие / создание / чтение файлов и т. Д.) В интерфейс или что-то еще, а затем высмеивать это.Примером может быть:
public interface IMyFileIO
{
public byte[] ReadFromFile(int bytes); // whatever
}
public static IEnumerable<Customer> GetStuff(IMyFileIO file, int filterValue)
{
}
И затем использовать mocking-frameworks (например, MOQ ) для насмешки IMyFileIO
:
[Test]
public void TestFileIO()
{
var mock = new Mock<IMyFileIO>();
mock.Setup(foo => foo.ReadFromFile(2)).Returns(new byte[]{2,3});
var myResult = MyClass.GetStuff(mock.Object, 10);
Assert. // <- what you need to check
}
Обратите внимание, чтов зависимости от того, что вы делаете, высоки шансы, что уже есть интерактивный / базовый класс, предоставляющий необходимую вам функциональность (StreamWriter, что угодно)