Powinieneś utworzyć usługę opakowania o nazwie IFileService, następnie możesz utworzyć konkretny, który używa statyki do użycia w twojej aplikacji, i fałszywą IFileService, która będzie mieć fałszywe funkcje do testowania. Upewnij się, że musisz przekazać IFileService do konstruktora lub właściwości dla jakiejkolwiek klasy, która używa tej klasy, w ten sposób normalna operacja wymaga przekazania w IFileService. Pamiętaj, że podczas testowania jednostkowego testujesz tylko tę część kodu, a nie rzeczy, które wywołuje ona, by polubić IFileService.
interface IFileService
{
bool Exists(string fileName);
void Delete(string fileName);
}
class FileService : IFileService
{
public bool Exists(string fileName)
{
return File.Exists(fileName);
}
public void Delete(string fileName)
{
File.Delete(fileName);
}
}
class MyRealCode
{
private IFileService _fileService;
public MyRealCode(IFileService fileService)
{
_fileService = fileService;
}
void DoStuff()
{
_fileService.Exists("myfile.txt");
}
}
Wiele przykładów na tej stronie już istnieje, użyj przycisku wyszukiwania – ChrisBint
możliwy duplikat [Drwawienie metod statycznych przy użyciu Rhino.Mocks] (http: // stackoverflow.com/questions/540239/mocking-static-methods-using-rhino-mocks) – sarnold
Czasami ludzie nie wiedzą, czego szukać, może mógłbyś podać kilka przykładów, zamiast być całkowicie bezużytecznymi. Tylko myśl. – CrazyDart