在 Umbraco 7.5.10 中设置 Mock IMember 对象进行单元测试
Setting up Mock IMember Object in Umbraco 7.5.10 for Unit Testing
所以我正在尝试对 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);
}
}
}
我已经解决了我自己的问题;我在设置它们之前没有设置属性(我假设它们在对象初始化时已经自动设置)所以解决这个问题的代码行是:
inactiveMemberEmailed.SetupAllProperties();
所以我正在尝试对 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);
}
}
}
我已经解决了我自己的问题;我在设置它们之前没有设置属性(我假设它们在对象初始化时已经自动设置)所以解决这个问题的代码行是:
inactiveMemberEmailed.SetupAllProperties();