Как выполнить модульное тестирование контроллера Umbraco Api - System.ArgumentNullException: «Значение не может быть нулевым. Имя параметра: umbracoContext ' - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь написать модульные тесты для UmbracoApiController, но при запуске тестов у меня возникает ошибка при создании нового экземпляра контроллера API.

Я начал изучатьподшучиваю над контекстом umbraco, но не добился большого прогресса, так как я настолько новичок в этом.

[TestMethod]
public void GetAllMembers()
{
    var c = new GroupManagerApiController();
    Assert.Fail();
}

Контроллер

public class GroupManagerApiController : UmbracoApiController

При создании нового экземпляра контроллера яполучаю следующее сообщение об ошибке:

System.ArgumentNullException: 'Value cannot be null.
Parameter name: umbracoContext'

Пожалуйста, сообщите мне об этом.

Спасибо.

1 Ответ

0 голосов
/ 11 ноября 2019

http://blog.aabech.no/archive/the-basics-of-unit-testing-umbraco/

Этот блог решил проблему.

Необходимо создать метод установки со следующим:

[SetUp]
public void SetUp()
{
    var applicationContext = new ApplicationContext(
        CacheHelper.CreateDisabledCacheHelper(),
        new ProfilingLogger(Mock.Of<ILogger>(), Mock.Of<IProfiler>())
    );
    UmbracoContext.EnsureContext(
        Mock.Of<HttpContextBase>(),
        applicationContext,
        new WebSecurity(Mock.Of<HttpContextBase>(), applicationContext),
        Mock.Of<IUmbracoSettingsSection>(),
        Enumerable.Empty<IUrlProvider>(),
        true
    );
}
...