【发布时间】:2013-12-10 07:27:04
【问题描述】:
信息: 使用 .NET 4.0 和 VS 2012
嗨,
我即将对我自己的类进行单元测试,该类有一个 TimeZoneInfo 类型的成员。但是,当我尝试在测试中考虑该成员时,它总是失败。
以下是一个简化示例,用于验证_timeZone在实例化过程中是否已正确初始化:
public class MyClass
{
public TimeZoneInfo _timeZone;
public MyClass(string timeZoneId)
{
_timeZone = TimeZoneInfo.FindSystemTimeZoneById(timeZoneId);
}
}
[TestMethod()]
public void MyClassCtorTest()
{
TimeZoneInfo expected = TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time");
TimeZoneInfo actual = new MyClass("W. Europe Standard Time")._timeZone;
Assert.IsTrue(expected.Equals(actual)); //This test passes!
Assert.AreEqual(expected, actual); //This test fails!
}
我发现 Assert.IsTrue(...) 通过而 Assert.AreEqual(...) 失败: “Assert.AreEqual 失败。预期:。实际:。”
由于 TimeZoneInfo 类中的“Equals”被覆盖,我不明白这里发生了什么。你能帮我通过第二个断言吗?非常感谢您!
罗伯
【问题讨论】:
标签: c# .net unit-testing timezone