단위 테스트 방법 Async 메소드가 여러 조항을 사용한 엔티티 프레임 워크
-
20-12-2019 - |
문제
MOQ 4.0.10827을 사용하여 EF 6.0.2에서 Async 메소드를 단위 테스트하려고 시도하고 있으며 주조 문제가있는 것으로 보이는 것으로 차단되고 있습니다.
다음은 잘 작동합니다.
public async Task<List<Testimonial>> GetByEventIdAsync(int eventId)
{
var query = from t in _context.Testimonials
orderby t.Ordinal
select t;
var result = query
.ToListAsync()
.ConfigureAwait(false);
return await result;
}
.
그러나 다음과 같은 휴식 (WHERE 절 추가)
public async Task<List<Testimonial>> GetByEventIdAsync(int eventId)
{
var query = from t in _context.Testimonials
where t.EventId == eventId
orderby t.Ordinal
select t;
var result = query
.ToListAsync()
.ConfigureAwait(false);
return await result;
}
.
나는 디버깅을했고 다음을 발견했다
var q1 = _context.Testimonials; // Type = Castle.Proxies.IDbSet`1Proxy_1
var q2 = q1.Where(t => t.EventId == eventId); // Type = TestDbAsyncEnumerable`1 (from linked code)
var q3 = q2.OrderBy(o => o.Ordinal); // Type = System.Linq.EnumerableQuery`1
.
클래스가 더블이 두 번 사라지는 이유는 무엇입니까?그리고 어떻게 수정합니까?
update : 나는 where
를 다시 추가하고 orderby
를 제거하고 문제가 해결되므로 문제가 여러 절이있는 것으로 보입니다.
제휴하지 않습니다 StackOverflow