Благоразумно, что я, во-первых, говорю, что я новичок как в Rhino Mocks, так и в общих чертах.
Имея это в виду, я пытаюсь провести модульное тестирование своего уровня репозитория Linq to SQL, чтобыудаляются правильные методы в текстовом тексте данных и что LINQ to SQL фильтруется правильно.
~ EDITED для ясности ~
Рассматриваемый метод - 'GetRecordWhere' - определен в репозиторииучебный класс.Он вызывает метод - «GetTable» - для DataContextWrapper, который является моей пользовательской оболочкой для Linq to SQL DataContext (автоматически сгенерированный), который был реализован для того, чтобы сделать DataContext способным к изменению.в настоящее время сталкивается с, бросается при попытке заглушить метод 'GetTable', чтобы обеспечить запрашиваемый набор результатов, который можно запросить с помощью метода 'GetRecordWhere'.
Значение ArgumentNullExcpetion: не может быть нулевым.генерируется со ссылкой на строку:
Arg<Expression<Func<Billing, bool>>>.Is.Anything
.., которую я также пытался использовать с Is.NotNull и конкретным предикатом.
Пример юнит-теста:
_dataContext = MockRepository.GenerateMock<IDataContextWrapper>();
[Test]
public void GetRecordWhere()
{
// Arrange
var billing = new Billing { BillingId = 1 };
var billingQueryList = new List<Billing> {billing};
const int testId = 1;
_dataContext.Stub(x => x.GetTable<Billing>()
.Where(Arg<Expression<Func<Billing, bool>>>.Is.Anything)
.SingleOrDefault())
.Return(billing);
_intRepository = new Repository(_dataContext);
// Act
var result = _intRepository.GetRecordWhere<Billing>(x => x.BillingId == testId);
// Assert
Assert.IsNotNull(result);
Assert.AreEqual(result.BillingId, testId);
_dataContext.AssertWasCalled(x => x.GetTable<Billing>());
}
Это ошибка в моем понимании RhinoMocks?
Помощь приветствуется!