2012-10-24 91 views
2

我即將在單元測試中使用Microsoft.Fakes。我讀了一個tutorial,其中Microsoft.Fakes爲接口創建了一個存根(在解決方案中實現),但在我的解決方案中,存根僅可用於類。爲什麼在Microsoft.Fakes中沒有接口的存根存根

你能告訴我,我應該怎麼做也爲所有intercaes存根。接口和類都被定義爲public。

回答

5

Fakes默認爲類和接口生成存根。您可能遇到了當前的限制之一,這會導致Fakes跳過您的界面。要解決問題,

  • 打開.Fakes文件和僞造品元素的設置冗長屬性爲「詳細」
  • 打開工具 - >選項 - >項目和解決方案 - >生成和運行,改變的MSBuild輸出詳細程度來「詳細」
  • 構建包含.Fakes文件的項目
  • 打開Output窗口並搜索GenerateFakes任務;查看其輸出信息,這些信息解釋了爲什麼特定界面不被剪切。

在Visual Studio 2012即將推出的季度更新1中,無論日誌記錄設置如何,在錯誤列表窗口中都會將此信息報告爲警告,這將使故障排除變得更加容易。

+0

嗨奧列格,謝謝你的迴應。 由於任何原因,它沒有幫助。但是我此時在一個新的空項目上測試了Fakes的功能,並且有接口的存根。我在兩個項目文件上做了一個小文件比較,但是我找不到任何顯着差異。 – llasarov

1

您可能還沒有鑽到適當的名稱空間。假冒產品與接口在被測組件中的相同命名空間中生成。因此,例如,如果您正在測試MyApp.Validators.IRequestValidator,則在您的單元測試中,您必須使用new MyApp.Validators.Fakes.StubIRequestValidator()而不是new MyApp.Fakes.StubIRequestValidator()

相關問題