C# 在Umbraco 7.5.10中为单元测试设置模拟IMember对象

C# 在Umbraco 7.5.10中为单元测试设置模拟IMember对象,c#,unit-testing,nunit,umbraco,umbraco7,C#,Unit Testing,Nunit,Umbraco,Umbraco7,因此,我正在尝试对翁布拉科7.5.10控制器进行单元测试。上下文已被模拟并通过,没有任何问题。然后,我继续创建一个模拟IMember对象,但每当我尝试设置任何属性(LastLoginDate、Name、Email等)时,它们都没有被设置,当您在调试期间检查InactiveMemberEmaild.object时,所有属性都为空。我已经检查了IMember继承了什么,没有理由不设置它们 using NUnit.Framework; using Umbraco.Core.Models; using

因此,我正在尝试对翁布拉科7.5.10控制器进行单元测试。上下文已被模拟并通过,没有任何问题。然后,我继续创建一个模拟IMember对象,但每当我尝试设置任何属性(LastLoginDate、Name、Email等)时,它们都没有被设置,当您在调试期间检查InactiveMemberEmaild.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);
        }
    }
}   
使用NUnit.Framework;
使用Umbraco.Core.Models;
使用Site.Logic.Controllers.SurfaceControllers;
使用制度;
使用最小起订量;
使用Umbraco.UnitTesting.Adapter.Support;
使用System.Collections.Generic;
名称空间站点。测试
{
[测试夹具]
公共类InactiveMemberCheckTest
{
专用umbracoupport support=新umbracoupport();
通过电子邮件发送私人模拟不活动成员;
[设置]
公共作废设置()
{
support.SetupUmbraco();
this.inactiveMemberEmailed=new Mock();
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(“InactiveCheckMailed”,true);
}
[测试]
public void MembersCanBeChecked()
{
var控制器=新的InactiveMemberCheckController(support.UmbracoContext);
var resultInactiveEmailed=controller.InactiveCheck(inactiveMemberEmailed.Object);
Assert.AreEqual(resultInactiveEmailed,true);
}
}
}   

我已经解决了自己的问题;在设置属性之前,我没有设置属性(我假设在初始化对象时会自动设置属性),因此解决此问题的代码行是:

inactiveMemberEmailed.SetupAllProperties();