2013-03-04 90 views
0

我有一個單元測試的WCF服務。我需要保存OperationContext以在測試中使用它。上下文不會保存,因此無法使用它在我的測試中回發。我可以保存當前上下文以在測試中使用它的最佳方式是什麼?在NUnit測試中獲取上下文

+0

你可以發佈你想測試的代碼嗎? – 2013-03-04 04:44:05

回答

1

你通常不能模擬OperationContext(除非你包裝它)。但檢查一下,如果它對你有幫助。

http://blog.gfader.com/2010/08/how-to-unit-test-wcf-service.html

一些替代方案:

1)另一種方法是簡單地重構你的代碼。將您的服務中的所有業務邏輯帶入單獨的可測試業務類,並讓該服務僅參與集成測試。服務更像基礎設施,並非所有事情都需要單元測試。集成/端到端/行爲測試也是測試和有效的方法。

2)使用更強大的測試框架。檢查Moles framework這是能夠攔截呼叫和重定向他們。這使得「模擬」密封類和靜態方法/屬性成爲可能。使用痣,你可以將調用重定向到OperationContext到你自己的方法。

+0

您是否有一些Moles正在使用Context回傳到雙通道WCF服務或類似的例子?謝謝 – 2013-03-04 05:19:35

+0

抱歉,我沒有,我只是讀了一些文章,併發布了答案,我希望它可以幫助你。 – Popeye 2013-03-04 05:24:23

+0

你在回答中提到,除非我包裹它?你是什​​麼意思是有一些例子?謝謝 – 2013-03-04 05:25:25