문제

통합 테스트를위한 맞춤형 자동 고정 빌더가 있습니다.코드는 다음과 같습니다.

질문 1-현재 첫 번째 트랜잭션에는 TransactionViewKey.TransactionId가 1 등이 있습니다. beginningTransactionId 메소드에서 시드되도록 TransactionViewKey TransactionId를 어떻게 설정합니까?예 : 첫 번째 TransactionId가 200 인 TransactionViews 배열을 반환 한 다음 각각 1 씩 증가합니까?

질문 2-transactiondate를 결정하는 람다는 한 번만 실행되는 것처럼 보이므로 각 날짜는 동일한 값입니다.생성 된 각 인스턴스에 대해 한 번만 실행되는 것이 아니라 임의의 날짜 생성기를 실행하도록 빌더를 어떻게 설정합니까?

감사합니다 라코 디스

도움이 되었습니까?

해결책

특정 질문에 답하기 전에 훨씬 더 쉬울 수있는 것을 지적하고 싶습니다. CreateMany를 호출 한 후 쓰기 가능한 속성에 값을 할당하는 것을 고려할 수도 있지만 할 수도 있습니다 . 결과를 반환하기 전에

예 : 라코 디스

핵처럼 보일 수 있지만 실제로는 그렇지 않습니다. AutoFixture는 시도 할 때마다 익명 값 을 생성하도록 설계되었습니다. 특정 값을 할당하기 위해 (현재 현재) 원래 목적에서 벗어나는 것입니다.

오해하지 마세요. 이렇게 AutoFixture를 사용하는 것이 좋습니다. 또한 AutoFixture가 생성 한 표본의 일부 구성원에 특정 값을 할당해야하는 경우도 있지만, getter 및 setter의 일반 .NET API가 이미 정확하게 수행하는 데 특화되어 있기 때문에 위의 기술을 사용하는 경향이 있습니다. / strong>. 반면 AutoFixture는 모호한 규칙을 정의하는 데 특화되어 있으므로 그 목적은 반대입니다.

하지만 이제 위에 제시된 구체적인 질문에 답하겠습니다.

질문 1

나는 이것을 컴파일하려고 시도하지 않았으므로 약간 조정해야 할 수도 있지만 가장 좋은 방법은 다음과 같습니다. 라코 디스

질문 2

With 메소드의 두 번째 매개 변수는 대리자가 아닙니다 . 이므로 한 번만 평가됩니다.

매번 평가하기 위해 위와 동일한 방법을 사용할 수 있습니다. 라코 디스

추가 질문이 있으면 알려주세요.

HTH

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top