2015-01-29 1 views
1

노다 시간을 사용하여 간단한 단위 테스트를 설정하려고합니다.노다 시간 단위 테스트 XML 오류

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 =..."

+0

System.Xml에 대한 참조를 추가 했습니까? –

+0

나는 System.Xml을 사용하여 만들려고했다. 하지만 VS2013에서는 찾을 수 없다고 말합니다 – mFeinstein

+1

프로젝트에 참조를 추가해야합니다. 프로젝트 참조 섹션을 마우스 오른쪽 버튼으로 클릭 한 다음 참조 추가를 선택하십시오. 왼쪽의 "Assemblies"섹션에서 "Framework"를 선택한 다음 "system.xml"을 찾아 왼쪽 상자를 선택한 다음 "ok"를 클릭하십시오. 버전 번호가 이상하게 들립니다. 2.0 버전이 필요합니다. 어떤 프레임 워크 버전을 대상으로합니까? –

답변

3

에서 FakeClock 유형의 오류는 당신은 System.Xml 조립 (안 System.Xml 네임 스페이스에 대한 using 지침)에 참조를 추가해야합니다. 솔루션 탐색기에서이를 수행하십시오 - 코드 문제는 아닙니다.

이것은 유감 스럽지만, Noda Time이 XML 직렬화를 구현하는 피할 수없는 부작용이라고 말할 수있는 한, 유형을 장식하는 데 사용 된 속성 때문일 수 있습니다.

+0

훌륭한 API, 훌륭한 지원! 많은 감사합니다! – mFeinstein

+0

Hey Jon - nuspec에''태그를 추가 할 수 있습니까? ([docs] (http://docs.nuget.org/create/nuspec-reference)) –

+0

@MattJohnson : 예, 좋은 생각 같아요. 문제 목록에 추가합니다. –