0
我公司嘲笑的HttpContext都有自己的SDK包含以下類:如何使用起訂量
public class SharePointContext(System.Web.HttpContext context)
{
}
如何使用最小起訂量來嘲笑的參數傳遞的HttpContext?來自互聯網的示例使用HttpContextBase,顯然它會拋出一個錯誤,因爲你不能指定一個抽象類的具體類。
有什麼想法?
我公司嘲笑的HttpContext都有自己的SDK包含以下類:如何使用起訂量
public class SharePointContext(System.Web.HttpContext context)
{
}
如何使用最小起訂量來嘲笑的參數傳遞的HttpContext?來自互聯網的示例使用HttpContextBase,顯然它會拋出一個錯誤,因爲你不能指定一個抽象類的具體類。
有什麼想法?
對於最新的Moq,這樣的應該工作。似乎Moq需要一個抽象類或接口,或者至少一個沒有密封的類。所有這些使得難以嘲笑HttpContext
。
//class that returns all the mock objects you need..
public static class MockHelpers
{
public static HttpContextBase GetFakeContext()
{
var context = new Mock<HttpContextBase>();
//we need these for our context
var request = new Mock<HttpRequestBase>();
var response = new Mock<HttpResponseBase>();
var session = new Mock<HttpSessionStateBase>();
var server = new Mock<HttpServerUtilityBase>();
context.Setup(ct => ct.Request).Returns(request.Object);
context.Setup(ct => ct.Response).Returns(response.Object);
context.Setup(ct => ct.Session).Returns(session.Object);
context.Setup(ct => ct.Server).Returns(server.Object);
return context.Object;
}
}
然後你使用這樣的:
public class SharePointContext(MockHelpers.GetFakeContext());
隊友..我說我已經嘗試了相同的方法,你給。它抱怨無法將HttpContextBase分配給HttpContext – user384080
@ user384080更新了我的答案,看看是否有效。 – gideon
@gideon .. HttpContext是具體的類。你不能嘲笑具體的課程。你只能嘲笑抽象或接口類。 – user384080