0
我是單元測試新手,所以可能是我做錯了什麼。Assert.AreEqual失敗。預計:<XmlResult>。實際:<XmlResult>
我有一些XmlResult類:
public class XmlResult : ActionResult
{
public XmlDocument Document { private get; set; }
public override void ExecuteResult(ControllerContext context)
{
//Do something
}
}
我也有控制器擴展方法:
public static class ControllerExtensions
{
public static XmlResult Xml(this Controller controller, XmlDocument document)
{
return new XmlResult { Document = document };
}
}
和測試方法:
[TestClass]
public class ControllerExtensionsTests
{
#region Xml
[TestMethod]
public void XmlExtensionShouldReturnCorrectValue()
{
// Arrange
var mockRepository = new Mock<T>();
var productsController = new ProductController(mockProductRepository.Object);
var someXmlDocument = new XmlDocument();
// Act
var actual = productsController.Xml(someXmlDocument);
var expected = new XmlResult { Document = someXmlDocument };
// Assert
Assert.AreEqual(expected, actual);
}
#endregion
}
而且磨片我打電話Assert.AreEqual(expected, actual);
我的測試失敗,消息"Assert.AreEqual failed. Expected:<XmlResult>. Actual:<XmlResult>."
。我究竟做錯了什麼???
預期,結果將是XmlResult的不同實例,所以他們不會是平等的。 – Douglas
那麼爲什麼當我創建兩個不同的XmlResult實例,如:'var expected = new XmlResult {Document = someXmlDocument}; var actual = new XmlResult {Document = someXmlDocument};'測試通過? – Dmytro
'productsController.Xml(someXmlDocument);'也在創建XmlResult的新實例,但只是在另一個方法 – Dmytro