我們使用EF4併爲DAL層創建測試用例(DAL層具有linq查詢)。我們使用TypeMock作爲嘲諷框架。爲了進行測試,我們正在創造Fakecontext的ObjectContext
和嘲諷CreateObjectSet
方法如下:如何創建用於測試EF4'Object'的ObjectQuery方法
Isolate.WhenCalled(() => fakeContext.Context.CreateObjectSet<User>)).WillReturnCollectionValuesOf(fakeUsers.AsQueryable());
以上是工作的罰款。問題是我們試圖使用'包含'來包含相關表格。我們延長了包括方法如下:
public static IQueryable<T> Include<T>(this IQueryable<T> source, Expression<Func<T>> property)
{
var objectQuery = source as ObjectQuery<T>;
if (objectQuery != null)
{
var propertyPath = GetPropertyPath(property);
return objectQuery.Include(propertyPath);
}
return source;
}
那麼,什麼發生的是,在上述Include
方法的源類型應該是ObjectQuery<T>
。但由於我們嘲笑CreateObjectSet
,Include
方法的源類型爲Collection.Generic.List
類型。請讓我們知道我們應該如何嘲笑上述案件。您的及時幫助將非常可觀。謝謝
你能格式化至少一個你的問題嗎? –
[如何包含關聯實體]的可能重複(http://stackoverflow.com/questions/7104461/how-to-include-associated-entities) –