2017-08-08 1 views
1

Le SetupGet pour Form fonctionne, mais le Count ne fonctionne pas. Comment résoudre à Count renvoyer la valeur attendue?Nombre de fichiers à partir de la demande avec Moq

var httpContextMock = new Mock<HttpContextBase>(); 
var request = new Mock<HttpRequestBase>(); 

httpContextMock.SetupGet(x => x.Request).Returns(request.Object);    
httpContextMock.SetupGet(x => x.Request.Form).Returns(form); 
httpContextMock.SetupGet(x => x.Request.Files.Count).Returns(2); 
+0

Cela ne fonctionne pas parce que vous configurez le mauvais simulacre – Nkosi

Répondre

1

Cela ne fonctionne pas car vous configurez le faux modèle. Appliquez l'installation sur la demande de simulation.

var httpContextMock = new Mock<HttpContextBase>(); 

var requestMock = new Mock<HttpRequestBase>(); 
requestMock.Setup(_ => _.Form).Returns(form); 
requestMock.Setup(_ => _.Files.Count).Returns(2); 

httpContextMock.Setup(_ => _.Request).Returns(requestMock.Object); 

Juste pour prouver les travaux ci-dessus, je l'ai testé comme ça

var context = httpContextMock.Object; 

Assert.AreEqual(2, context.Request.Files.Count); 

et cela a fonctionné.

0

J'ai fait un test rapide et cela fonctionne si vous accédez à la demande dans le contexte faux. Cependant, comme Nkosi l'a suggéré, vous souhaitiez probablement installer Files.Count sur requestMock lui-même.