ho il seguente Action Method
Sto provando a moq test. Si noti lo AcceptVerbs
? Devo assicurarmi di provarlo.Come testare un post HTTP con Moq in ASP.NET?
ecco il metodo.
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create([Bind(Include = "Subject, Content")]Post post,
HttpPostedFileBase imageFileName)
{
...
}
Ecco il codice moq ho ...
[TestMethod]
public void Create_Action_snip_sniop_When_Http_Post_Is_Succesful()
{
// Arrange.
var mock = new Mock<ControllerContext>();
mock.SetupGet(m => m.HttpContext.Request.HttpMethod).Returns("POST");
// Snip some other arrangements.
var controller = PostController;
controller.ControllerContext = mock.Object;
// Act.
var viewResult = controller.Create(post, image.Object) as ViewResult;
// Assert.
Assert.IsNotNull(viewResult);
// TODO: Test that the request was an Http-Post.
che cosa devo fare per verificare la richiesta era un post?
Quindi quello che stai dicendo è che si sta testando per assicurarsi che avete decorato il metodo di controllo specifico con il verbo .Pubblicare .. al contrario di test che il metodo è stato licenziato su una richiesta è postato su Http (perché questo è il modo in cui è fuori dal campo di applicazione -> è roba di framework) ..? –
corretto. La funzionalità che richiama il filtro è al di fuori dell'ambito del metodo (attivato prima che il metodo venga richiamato), quindi non vedrai mai un POST nel tuo metodo se viene applicato l'attributo corretto. – tvanfosson