2017-01-19 1 views
0

내 목표는 특정 테스트와 관련된 매개 변수 만 정의 할 수 있도록하는 것이며, C# (고정자 생성자, 설정자 없음) 테스트에 명시되지 않은 매개 변수에 대해 유효한 값을 사용자 지정 픽스처로 처리하도록합니다.Autofixtures "With"- 빌드를 사용할 때의 사용자 정의가 무시됩니다.

문자열에 대한 내 "with with"속성 사용자 정의를 사용하여 내 머리를 긁적니다. DateTime과 int는 무시됩니다. "고객"에 따라 예 :

public class Guest 
{ 
    public readonly string GuestId; 
    public readonly string GivenName; 
    public readonly string SurName; 
    public readonly AgeCode AgeCategory; 

    public Guest(string guestid, AgeCode ageCategory, string givenName, string surName) 
    { 
     AgeCategory = ageCategory; 
     GivenName = givenName; 
     SurName = surName; 
     GuestId = guestid; 
    } 
} 

그래서 같은 고정 장치 인스턴스를 사용자 정의 : fixture.Create<Guest>()를 사용하는 경우,하지만 fixture.Build<Guest>().With(g=>g.Surname, "Olsen")를 사용하지 않을 경우 작동

 fixture.Customize<Guest>(composer => 
      composer 
       .With(g => g.GivenName, "Finn") 
       .With(g => g.GuestId, "1") 
       .With(g => g.SurName, "Rasmussen") 
      ); 

을 .... enter image description here

가 AutoFixture 서명 보면 난 Fixture.Build<T>() 새로운 작곡가를 인스턴스화하고, 그 작곡가는 Customize<T> 방법의 '작곡가 인스턴스로 주입되지 않기 때문이다 이해한다. 또한 - 속성에 대한 첫 번째 맞춤 설정이 "이기기"때문에 맞춤 설정 앞에 '덮어 쓰기'를 적용해야한다는 것을 알고 있습니다 ...

제안 사항이 있으십니까? 나는 못을 망치로 드라이버를 사용하려고 여기에서 완전히 궤도에 오르고 있습니까? 유형을 구축하기위한 기본 전략은 마법처럼

Fixture.Register<TType>(Func<TType> creator) 

작품으로 변경할 수 있습니다 아니면 단순히 다른 사람들을위한

+0

참조 http://stackoverflow.com/a/28362898/126014 –

+0

참조 http://stackoverflow.com/a/20816487/126014 –

+0

고마워, 감사합니다. – Julian

답변

0

이 발견 ... 영리 및/또는 여기에 뭔가를 분명보고 있지 않다. ..

관련 문제