Vorrei rendere verificabile il servizio ServiceStack.In ServiceStack è possibile simulare l'oggetto Request.OriginalRequest per i test unitari?
Attualmente ho:
[RequireFormsAuthentication]
public object Delete(DeleteRequest request)
{
var originalRequest = (HttpRequest)Request.OriginalRequest;
var identity = originalRequest.RequestContext.HttpContext.User.Identity;
return othercode(identity);
}
Dove RequireFormsAuthentication è
public class RequireFormsAuthenticationAttribute : RequestFilterAttribute
{
public override void Execute(IHttpRequest req, IHttpResponse res, object requestDto)
{
var originalRequest = (HttpRequest)req.OriginalRequest;
var identity = originalRequest.RequestContext.HttpContext.User.Identity;
if (!identity.IsAuthenticated)
{
res.StatusCode = (int)HttpStatusCode.Forbidden;
res.EndServiceStackRequest(skipHeaders: true);
}
}
}
ho preso in giro tutte le dipendenze utilizzato da 'othercode()' e tutto quello che resta è la roba che c'è nella Servizio di classe base. C'è un modello/strategia/approccio/qualcosa che mi manca che rende questo banale?
che copre un bel po ', in realtà. Grazie! Un'altra cosa, tuttavia: sai come posso ignorare la richiesta 'membro' protetta? (la riga 4 del mio primo blocco di codice fallirà con NRE) – Robin
Inoltre ... sembra che "HttpRequest" sia una classe chiusa e non possa essere derisa. – Robin
Sì, HttpReqeust è sigillato Penso che puoi lanciare su HttpRequestBase invece? Riga 12 (mockedRequestContext.Stub (x => x.Get()). Return (mockedHttpRequest)) Dovrebbe permetterti di prendere in giro il membro della richiesta. –
paaschpa