2016-04-01 5 views
3

Ich erhalte diesen Fehler zu finden:VS2015 Unit-Test-Projekt ist nicht in der Lage, ein Verfahren

Result StackTrace: at UnitTestProject.ControllerTest.TestMethodQuoteEndCustomerSearch() Result Message: Test method UnitTestProject.ControllerTest.TestMethodQuoteEndCustomerSearch threw exception: System.MissingMethodException: Method not found: 'System.Web.Mvc.ActionResult QuoteCenter.Controllers.ECSearchController.QuoteEndCustomerSearch(System.String, System.String, System.String, System.String)'.

My Test-Klasse sieht wie folgt aus:

namespace UnitTestProject 
{ 
    [TestClass] 
    public class ControllerTest 
    { 
     [TestMethod] 
     public void TestMethodQuoteEndCustomerSearch() 
     { 
     //arrange 
     ECSearchController myController = new ECSearchController();   

     //ISSUE WITH THE NEXT LINE 
     ViewResult result = myController .QuoteEndCustomerSearch("", "", "", "") as ViewResult; 
     } 
    } 
} 

Die Intellisense weiß, dass MyController ein Verfahren QuoteEndCustomerSearch hat . Aber wenn ich debugge, bekomme ich den obigen Fehler.

Die Methode sieht der Steuerung wie folgt aus:

[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)] 
    public ActionResult QuoteEndCustomerSearch(String quoteId, String CID, String URL, String UserID) 
    { 
     //... 
     return View("QuoteEndCustomerSearch", model); 
    } 

Irgendwelche Tipps, was sonst sollte ich versuchen, es zum Laufen zu bringen? Ich bin im Admin-Modus und habe VS2015 neu gestartet.

+1

Wenn die Ansicht denselben Namen wie die Aktion hat, muss sie nicht in 'View()' eingeschlossen werden. Ändere 'return View (" QuoteEndCustomerSearch ", model);' um View (model) zurückzugeben; – Nkosi

+0

Danke für den hilfreichen Tipp Nkosi – Sniipe

Antwort

2

Das Problem war, dass mein vorhandenes Projekt MVC Version 5 hatte, aber das neue Testprojekt hatte eine neuere Version. Alles gut jetzt. Ich bemerkte nicht, als ich Nuget benutzte, dass die Versionen unterschiedlich waren. Ich denke, jetzt ist eine gute Zeit für mich, alle Projekte auf die neueste Version von MVC zu aktualisieren.