2012-12-27 1 views
2
foreach (BeamCluster cluster in executionContext.RevitModel.Beams 
           .Where(b => b.Walls.Values 
                .Contains(executionContext.Frame.Wall))) 
     { 

?Typemock 가짜 수집 나뿐만 아니라 빔, 프레임, 벽을위한 가짜를 사용할 수 있어요 그래서 내가 형 모의를 사용하여는 IEnumerable에 정보를 공급 가겠어요 어떻게 위의 코드의 조각을 감안할 때

빔은 사전입니다.

의 ExecutionContext 내가 혼란 스러워요이 후

TooLongContext context = Isolate.Fake.Instance<TooLongContext>(Members.ReturnRecursiveFakes); 
Isolate.WhenCalled(() => context.RevitModel.Beams).ReturnRecursiveFake(); 

당신은상의 빔는 IEnumerable과 벽 등을 만들 필요가

답변

0

(어쩌면 내가이 :) 전에 혼란 스러워요) TooLongContext 유형의 당신의 자신의 첫 번째. Typemock (및 다른 모의 프레임 워크)은 유용한 데이터를 자동 생성하지 않습니다. 재귀 적 가짜를 반환하게 할 때, null은 아무것도 반환하지 않도록 (일반적으로 모든 것을 기본값으로 반환하여) 시도합니다. 그것은 단지 null 참조 예외를 방지하고 많은 테스트 케이스에 유용하지 않습니다.

당신이해야 할 일은 컨텍스트가 반환하는 것을 변경하기 만하면됩니다.

var myFakeBeams = new List<Beam>(); 
//Add a bunch of fake beams 
Isolate.WhenCalled(() => context.RevitModel.Beams).WillReturn(myFakeBeams); 

기타 유형에 대해서도 마찬가지입니다.

관련 문제