2014-10-07 43 views
0

我想用微軟假貨來填補Directory.CreateDirectory(path)的電話。使用微軟假貨我收到一個編譯錯誤

當我使用下面的代碼它給我一個編譯錯誤說:

屬性或索引 「System.IO.Fakes.ShimDirectory.CreateDirectoryString」不能在此上下文中使用 ,因爲它缺少get訪問

這裏是我試圖運行該代碼導致編譯問題:

_path = @"\\" + TestConfig.Instance.FileShareHost + @"\SharingIsGood"; 
    using (ShimsContext.Create()) 
    { 
     ShimDirectory.CreateDirectoryString(_path); 

     // Directory.CreateDirectory(_path); 
     _fatalException = MockRepository.GenerateMock<IHandleFatalExceptions>(); 
     _filter = "*.txt"; 
     _fileReader = new FileHandler(); 
    } 

如果我刪除ShimDirectory.CreateDirectoryString(_path);行,它編譯得很好。所以這條線的東西很奇怪。我是微軟假貨的新手。

在此先感謝。

回答

0

如果你想創建ShimDirectory.CreateDirectoryString假的,你的代碼應該是這樣的:

using (ShimsContext.Create()) 
{ 
    ShimDirectory.CreateDirectoryString = path => 
    { 
     // Your fake code here 
    } 

    _path = @"\\" + TestConfig.Instance.FileShareHost + @"\SharingIsGood"; 
    Directory.CreateDirectory(_path); 
} 
+0

我不知道要放什麼假節。我以爲'ShimDirectory.CreateDirectoryString'和'Directory.CreateDirectory'是一樣的。有點困惑在這裏。 – 2014-10-07 18:02:00

+0

好的。我有它編譯。仍然有其他問題。我會編輯你的答案以提供更多細節(如果可以的話) – 2014-10-07 18:15:06