Обновление ASP.NET MVC3 - «Ошибка попытки метода [что угодно] для доступа к методу System.Web.Mvc.Controller.View (...)» - PullRequest
6 голосов
/ 14 июля 2011

У меня есть модульный тест, который отлично работал в MVC2.Тест просто определяет действие на контроллере, необходимые заглушки и проверяет имя представления.Однако после обновления до MVC3, когда я вызываю метод, я получаю ошибку выше.Обновление сайта MVC3 работает просто отлично;У меня просто эти модульные тесты не пройдены из-за обновления.Спасибо.

Вот мое действие:

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);
}

Ответы [ 2 ]

4 голосов
/ 02 сентября 2015

Я знаю, что это старый поток, но я только что получил ту же ошибку с MVC 5.2.3 ... но с использованием Xunit. В конце концов, это не имеет значения, поскольку способ решения проблемы будет таким же.

Во-первых, вы должны убедиться, что MVC был добавлен в ваш проект Tests. Я добавил его через NuGet:

Install-Package Microsoft.AspNet.Mvc - Версия 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>
3 голосов
/ 17 июля 2011

Одна из вещей, которые сводили меня с ума при обновлении проекта до MVC 3, - это странные, необъяснимые ошибки. Пока я не подумал, что не все проекты были обновлены до MVC 3 (в вашем случае - это может быть тестовый проект) и остались в MVC 2, что вызвало некоторые очень странные поведения, подобные описанному вами. Пожалуйста, проверьте версию System.Web.Mvc (и, возможно, связанные сборки) в вашем тестовом проекте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...