Noda时间单元测试XML错误

时间:2015-01-29 17:13:42

标签: c# xml unit-testing nodatime

我正在尝试使用Noda Time设置一个简单的单元测试。我的代码是:

public void ValidityPassedDate()
{
    FakeClock fakeClock = new FakeClock(SystemClock.Instance.Now);
    fakeClock.AdvanceDays(60);
    MyClass myObj = new MyClass(fakeClock); 
    myObj.Validity = "1";
    myObj.Date = SystemClock.Instance.Now.InZone(DateTimeZoneProviders.Tzdb.GetSystemDefault()).LocalDateTime.Date;

    Assert.IsTrue(myObj.ValidityIsValid);
}

但是当我尝试构建测试时出现此错误:

  

错误CS0012:类型'System.Xml.Serialization.IXmlSerializable'是   在未引用的程序集中定义。你必须添加一个   对程序集'System.Xml,Version = 2.0.0.0,Culture = neutral,   PublicKeyToken = ----------(我故意删除了这个)'。

我该如何解决这个问题?少了什么东西? VS2013将错误指向FakeClock

中的"FakeClock fakeClock =..."类型

1 个答案:

答案 0 :(得分:3)

您需要向System.Xml程序集添加引用(而不是using命名空间的System.Xml指令。在解决方案资源管理器中执行此操作 - 这不是代码问题。

这很不幸,但据我所知,Noda Time实现XML序列化是不可避免的副作用......大概是由于用于装饰类型的属性。