2010-09-17 28 views
0

我已經使用Dnoa實現了一個OpenID控制器。我正在使用RP MVC模板中的dnoa方法,該方法從控制器操作中返回IAuthenticationRequest.RedirectingResponse.AsActionResult()。但是,我現在發現使用Moq很難測試控制器,因爲這種方法。我應該在MVC中使用DotNetOpenAuth OpenIdRelyingParty RedirectingResponse.AsActionResult或RedirectToProvider嗎?

我改變了控制器,而是調用IAuthenticationRequest.RedirectToProvider()並返回null爲ActionResult,這似乎有相同的效果。 RedirectToProvider應該更容易模擬,但是在這種情況下從控制器返回null是否合適?

回答

1

顯然,AsActionResult方法是指MVC。我會鼓勵你使用它。

你能告訴我爲什麼很難測試嗎?

+0

Moq在RedirectingResponse.AsActionResult()方面遇到了問題,但沒有使用RedirectToProvider()方法。在MVC中使用RedirectToProvider會有什麼問題,並返回一個新的EmptyResult? – danludwig 2010-09-26 15:34:18

+0

我不確定會出現什麼問題。但MVC的精神是返回結果而不是調用RedirectToProvider,它調用ASP.NET的Response.End()方法,該方法通常會拋出ThreadInterruptedException異常。 – 2010-09-29 03:29:01

相關問題