Я пытался выполнить тестирование моего хранилища. Мне нужно высмеять предложение Where с некоторыми значениями. Я попытался следующийRhinoMock Stub Linq Где предложение для DbContext
var parentClass = new ParentClass {id = 1};
var subClass = new SubClass
{
id=2,
ParentClassId = parentClass.id,
ParentClass = parentClass
}
var subSubClass = new SubSubClass
{
id =3,
SubClassId = subClass.id,
SubClass = subClass
}
var dbContext = MockRepository.GenerateMock<IDbContext>();
var subClassContext = MockRepository.GenerateMock<IDbSet<SubClass>>();
var subSubClassContext = MockRepository.GenerateMock<IDbSet<SubSubClass>>();
subClassContext.Stub(x => x.GetEnumerator())
.Return(null)
.WhenCalled(c => c.ReturnValue = new List<SubClass> { subClass }.GetEnumerator());
subSubClassContext.Stub(x => x.GetEnumerator())
.Return(null)
.WhenCalled(c => c.ReturnValue = new List<SubSubClass> { subSubClass }.GetEnumerator());
Я проверяю следующий код
var existingSubSubClasses = context.SubSubClass.Where(cba => cba.SubClass.ParentClassId == parentClassId).ToList();
Я получаю ArgumentNullReferenceException
Что я делаю неправильно?
Код в ваших двух фрагментах кода напрямую не связан друг с другом. Что такое «контекст» во втором фрагменте? Это 'dbContext' сверху или что-то другое? –