2013-07-22 6 views
3

이 테스트에서는 dummyVar가 비어있을 것으로 예상했습니다. 그러나, 내가 OmitAutoProperty를 설정 한 것과 관계없이, 그렇지 않습니다.빈 더미 모음

이 올바른 동작입니까? 그 이유는 무엇입니까? AutoFixture 빈 더미 컬렉션을 만드는 방법은 무엇입니까?

[Fact] 
public void ShouldBeEmpty() 
{ 
    var fixture = new Fixture(); 
    fixture.Customize(new AutoMoqCustomization()); 
    fixture.OmitAutoProperties = true; 
    var dummyVar = fixture.Create<IEnumerable<IComparable>>(); 
    Assert.Empty(dummyVar); 
} 

답변

5

이것은 by design in AutoFixture 3.0입니다. 그러나 열거 형을 비우려면 you can configure that as well을 사용하십시오. 인구 있습니다 특성 (과 필드를) 반대 여부를

fixture.Inject<IEnumerable<IComparable>>(new IComparable[0]); 

OmitAutoProperties 제어 : 사용자가 명시 적으로 원하는 경우

IEnumerable<IComparable>은 (그러나 다른 컬렉션되지 않음) 비어있는, 쉬운 방법은이 작업을 수행하는 것입니다 아닙니다. 컬렉션의 크기에는 영향을주지 않습니다.

RepeatCount이 컬렉션의 크기를 제어 (IEnumerable<T>은. 쓰기 가능한 속성을 정의하지 않는다)하지만 the previously mentioned issue 보고서, 당신은 RepeatCount 0 (다시 설계) 설정 기운 다.

+0

감사 마크, 정말 새로운 IComparable [0]의 단순함을 좋아합니다. – cocogorilla

+0

@ mark-seemann 나는 AutoFixture 3.0에 관한 회신 wrt에서 잘못된 페이지로 연결되었다고 생각합니다. 부분적으로 Wiki 페이지 자체의 해당 섹션에 대한 앵커 및 해당 링크가 모두 손상 되었기 때문입니다. AFAIK 올바른 링크는 https://github.com/AutoFixture/AutoFixture/wiki/Version-History#various-collections-are-filled-by-default입니다. 위키 페이지 자체에 대한 업데이트도 약속했습니다. –