【发布时间】:2021-03-29 09:15:18
【问题描述】:
以下链接表明这应该可行。
-
[TestFixture()] public class ResponseMessageUnitTests { private Mock<IConfiguration> _IConfigurationMoq; private Mock<ICardReader> _ICardReaderMoq; private ResponseMessage responseMessage; public ResponseMessageUnitTests() { //Act this._IConfigurationMoq = new Mock<IConfiguration>(); _IConfigurationMoq.Setup(x => x.REPEATDELAYTIME).Returns(0); _IConfigurationMoq.Setup(x => x.COLOUR_WHOLE_RESPONSE_AREA).Returns(true); this._ICardReaderMoq = new Mock<ICardReader>(); this.responseMessage = new ResponseMessage(_IConfigurationMoq.Object, _ICardReaderMoq.Object); } [Test(Description = "Calling ResponseMessage DisplayAdditionalInfo_Empty Method " + "with a Background Colour that populates the fields " + "AdditionalInfoLine[1-4] and " + "AdditionalInfoNo[1-4]")] [TestCase(BACKGROUNDCOLOURS.GOOD)] public void ResponseMessage_DisplayAdditionalInfo_Empty(string backgroundColour) { //Arrange _IConfigurationMoq.Setup(x => x.COLOUR_WHOLE_RESPONSE_AREA).Returns(true); _IConfigurationMoq.Setup(x => x.REPEATDELAYTIME).Returns(0); DisplayLine expected = new DisplayLine(_IConfigurationMoq.Object, null, null, backgroundColour); //Act responseMessage.DisplayAdditionalInfo_Empty(backgroundColour); //Assert Assert.AreEqual(expected,responseMessage.AdditionalInfoLine1); //Assert.AreEqual(expected, responseMessage.AdditionalInfoLine2); //Assert.AreEqual(expected, responseMessage.AdditionalInfoLine3); //Assert.AreEqual(expected, responseMessage.AdditionalInfoLine4); //Assert.AreEqual(expected, responseMessage.AdditionalInfoNo1); //Assert.AreEqual(expected, responseMessage.AdditionalInfoNo2); //Assert.AreEqual(expected, responseMessage.AdditionalInfoNo3); //Assert.AreEqual(expected, responseMessage.AdditionalInfoNo4); }
如果我在带有 Assert.AreEqual 的行上放置一个断点,我会得到以下信息:
测试失败令我惊讶的是以下错误消息:
Message: Expected: <EPIC.APIS.REST.Models.Android.DisplayLine>
But was: <EPIC.APIS.REST.Models.Android.DisplayLine>
我不明白为什么...这两个对象属于同一类型并包含相同的值?
<package id="NUnit" version="3.12.0" targetFramework="net462" />
【问题讨论】:
-
您的
DisplayLine类是否覆盖Equals? -
不,它没有 Equals 覆盖。
-
您到docs.nunit.org/2.2.2/comparisonAsserts.html 的链接是旧文档...它甚至在页面顶部这样说!我编辑了您的问题,以便链接到当前文档。请尽量避免将自己和他人与过时的文档混淆 - NUnit 2.2.2 来自 2004 年!