Настройка Mock IMember Object в Umbraco 7.5.10 для модульного тестирования - PullRequest
0 голосов
/ 01 июня 2018

Итак, я пытаюсь провести модульное тестирование контроллера Umbraco 7.5.10.Контекст был осмеян и передан без проблем.Затем я продолжаю создавать фиктивный объект IMember, но всякий раз, когда я пытаюсь установить любое из свойств (LastLoginDate, Name, Email и т. Д.), Они не устанавливаются, и когда вы переходите к проверке inactiveMemberEmailed.Object во время отладки, все свойстваноль.Я проверил, что IMember наследует, и нет никаких причин, почему они не должны быть установлены.

using NUnit.Framework;
using Umbraco.Core.Models;
using Site.Logic.Controllers.SurfaceControllers;
using System;
using Moq;
using Umbraco.UnitTesting.Adapter.Support;
using System.Collections.Generic;

namespace Site.Tests
{
    [TestFixture]
    public class InactiveMemberCheckTest
    {
        private UmbracoSupport support = new UmbracoSupport();
        private Mock<IMember> inactiveMemberEmailed;

        [SetUp]
        public void Setup()
        {
            support.SetupUmbraco();

            this.inactiveMemberEmailed = new Mock<IMember>();


            inactiveMemberEmailed.Object.LastLoginDate = DateTime.Today.AddMonths(-12);
            inactiveMemberEmailed.Object.Name = "inactiveMemberNotEmailed";
            inactiveMemberEmailed.Object.Email = "email@example.co.uk";
            inactiveMemberEmailed.Object.SetValue("contactId", 1);
            inactiveMemberEmailed.Object.SetValue("inactiveCheckEmailed", true);
        }

        [Test]
        public void MembersCanBeChecked()
        {
            var controller = new InactiveMemberCheckController(support.UmbracoContext);

            var resultInactiveEmailed = controller.InactiveCheck(inactiveMemberEmailed.Object);

            Assert.AreEqual(resultInactiveEmailed, true);
        }
    }
}   

1 Ответ

0 голосов
/ 01 июня 2018

Я решил свою собственную проблему;Я не настраивал свойства до их установки (я предполагал, что они были настроены автоматически, когда объект был инициализирован), поэтому строчка кода для решения этого:

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