1
이것이 더 많은 통합 테스트 일 것입니다.하지만 엔티티 프레임 워크 (4) 모델의 연관을 테스트하는 방법에 대한 좋은 자습서 링크가있는 사람이 있습니까? 예상대로 작동합니까?연결이 올바른지 확인하기 위해 엔티티 프레임 워크에 대한 통합 테스팅
내 생각에 당신은, 나 또한 등 것을
이것이 더 많은 통합 테스트 일 것입니다.하지만 엔티티 프레임 워크 (4) 모델의 연관을 테스트하는 방법에 대한 좋은 자습서 링크가있는 사람이 있습니까? 예상대로 작동합니까?연결이 올바른지 확인하기 위해 엔티티 프레임 워크에 대한 통합 테스팅
내 생각에 당신은, 나 또한 등 것을
당신이 첫 번째 코드를 사용하는 경우 내가 엔티티를 저장하고, 아이 엔티티를 추가 할 수 있는지 확인하려면 및 유지하기 때문에, 이것에 대한 sqllite 같은 것을 사용하는 것이 었습니다 조롱 프레임 워크를 사용하여 구현을 테스트 할 수 있습니다. 데이터베이스를 칠 필요없이 메모리에 완전히 테스트를 실행 할 수 있도록해야 그 방법을 사용
public class InMemoryDbSet<T> : IDbSet<T> where T : class
{
private readonly HashSet<T> _data;
private readonly IQueryable _query;
public Type ElementType
{
get
{
return this._query.ElementType;
}
}
public Expression Expression
{
get
{
return this._query.Expression;
}
}
public IQueryProvider Provider
{
get
{
return this._query.Provider;
}
}
public InMemoryDbSet()
{
this._data = new HashSet<T>();
this._query = _data.AsQueryable();
}
public T Add(T entity)
{
this._data.Add(entity);
return entity;
}
public T Attach(T entity)
{
this._data.Add(entity);
return entity;
}
public TDerivedEntity Create<TDerivedEntity>() where TDerivedEntity : class, T
{
throw new NotImplementedException();
}
public T Create()
{
return Activator.CreateInstance<T>();
}
public virtual T Find(params Object[] keyValues)
{
throw new NotImplementedException("Derive from FakeDbSet and override Find");
}
public System.Collections.ObjectModel.ObservableCollection<T> Local
{
get
{
return new System.Collections.ObjectModel.ObservableCollection<T>(_data);
}
}
public T Remove(T entity)
{
this._data.Remove(entity);
return entity;
}
public IEnumerator<T> GetEnumerator()
{
return this._data.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return this._data.GetEnumerator();
}
}
:하지만,
당신이 사용할 수있는 IDbSet 인스턴스로, 다음은 유용했다 왜냐하면 내가 아는 한 IDbContext는 거기에서만 사용되기 때문입니다.
DbSets을 조롱 할 수는 있지만 Linq2Sql 만 테스트하고 Linq2Sql은 테스트하지 않습니다. 그러면 SQL을 실행하지 않으므로 데이터베이스 액세스가 테스트되지 않습니다. – pfluggs11