2011-07-14 15 views
6

MVC2でうまく機能している単体テストがあります。このテストでは、コントローラのアクションと必要なスタブを定義し、ビューの名前をテストします。しかし、MVC3にアップグレードした後、メソッドを呼び出すと、上記のエラーが発生します。サイトMVC3のアップグレードは正常に動作します。私はちょうどアップグレードのためにこれらの単体テストが失敗している。ありがとう。ここでASP.NET MVC3のアップグレード - メソッドにアクセスしようとしましたが、System.Web.Mvc.Controller.View(...)メソッドにアクセスできませんでした。

は、自分の行動です:

public partial class GadgetController 
{ 
    [SetterProperty] 
    public IATCGadgetProxy ATCGadgetService { get; set; } 

    public ActionResult LoadForums(bool popularOnly, bool myThreads, int itemCount) 
    { 
     var model = ATCGadgetService.LoadForums(popularOnly, myThreads, itemCount); 

     return View("AskTheCommunity-Forums", model); 
    } 
} 

は、ここでのテストです。アクションからビューを返すときに失敗しています。

[TestMethod] 
public void Test_Forums_Action_Type() 
{ 
    GadgetController controller = new GadgetController(); 
    controller.ATCGadgetService = new ATCGadgetServiceStub(); 
    ViewResult result = controller.LoadForums(false, false, 10) as ViewResult; 

    Assert.IsNotNull(result); 
    Assert.AreEqual("AskTheCommunity-Forums", result.ViewName); 
} 
+1

テストとテストの両方のコードを表示してください。現在の状態では、あなたの質問は答えにくいです。 –

+0

上記のコード。ありがとう –

+0

私は同じ問題を持っています –

答えて

3

私がプロジェクトをMVC 3にアップグレードするのを狂わせた原因の1つは、説明できない奇妙なエラーでした。私が思うまで、すべてのプロジェクトがMVC 3にアップグレードされたわけではありません(あなたの場合はテストプロジェクトかもしれません)。MVC 2に残っていて、あなたのような非常に奇妙な動作が起こりました。テストプロジェクトのSystem.Web.Mvc(および場合によっては関連するアセンブリ)のバージョンを確認してください。

+0

@ライアンそれはあなたを助けましたか?あなたは何のフィードバックも与えていません。 –

+1

これは、MVC 4への参照を含むプロジェクトをコンパイルしてから、MVC 3のWebサイトにデプロイする場合です.MVC 3への参照を変更して、作業が開始されました。ありがとう! –

4

これは古いスレッドだと知っていますが、MVC 5.2.3では同じエラーが発生しましたが、Xunitを使用しています。結局のところ、問題を解決する方法は同じであるため、実際には問題はありません。

まず、テストプロジェクトにMVCが追加されていることを確認する必要があります。私はNuGet経由でこれを追加しました:

は、インストール・パッケージMicrosoft.AspNet.Mvc -Version 5.2.3

それとも、あなたが使用しているものは何でもMVCバージョンにバージョンを変更することができます。

その後、私はまだエラーが発生していました。私はApp.configページに情報がないことを知りました。これらの行があることを確認したら、すべてが機能しました。

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 

    <!-- Other config here --> 

    <runtime> 
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
      <dependentAssembly> 
       <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
       <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" /> 
      </dependentAssembly> 
     </assemblyBinding> 
    </runtime> 
</configuration> 
関連する問題