我有以下嘲笑:起訂量:無法投
var MockHttpContext = new Mock<HttpContextBase>();
var MockPrincipal = new Mock<IPrincipal>();
MockHttpContext.SetupGet(h => h.User).Returns(MockPrincipal.Object);
測試此線時出現的錯誤:
var user = (CustomPrincipal)httpContext.User;
這是錯誤:
Unable to cast object of type 'IPrincipalProxy5c6adb1b163840e192c47295b3c6d696'
to type 'MyProject.Web.CustomPrincipal'.
我CustomPrincipal實現IPrincipal接口。那麼,任何人都可以解釋爲什麼我會得到這個錯誤,以及我如何解決它?
除了我的回答,這裏有一個提示:var是一個只有當你知道發生了什麼事情時才使用的捷徑......如果你不知道發生了什麼,使用var,你的代碼將會受到影響。 (儘管使用var不是問題的根源) – 2010-05-05 16:03:39
感謝您的回覆,我將Yuriy的回答標記爲正確的答案,因爲他解釋說moq創建了自己的類。 – Pickels 2010-05-05 17:43:16