У меня есть класс, как показано ниже, где с помощью Fluent NHibernate Я получаю данные из базы данныхКак проверить метод расширения Nhibernate, который не возвращает значение даже после указания возврата в fakeiteasy?
public class MyActualClass
{
public MyActualClass(ISessionFactory sessionFactory)
{
this.sessionFactory = sessionFactory;
}
public List<AnnualInformation> GetData()
{
using (session = sessionFactory.OpenSession())
{
var result = session.QueryOver<AnnualInformation>()
.SelectList(list => list
.Select(x => x.Id)
.Select(x => x.CreationDate)
.Select(x => x.AnnualAmount)
.Select(x => x.AnnualCurrency)
.Select(() => monthlyAlias.MonthlyAmount)
.Select(() => monthlyAlias.MonthlyCurrency)
.Select(() => shareAlias.CurrentSharevalue)
.Select(() => miscAlias.MarketValueAmount)
).Where(a => a.Id == 123456).List<AnnualInformation>();
}
}
}
Я Выписали блок тестовый пример для описанным выше способом, как ниже
public class MyTestClass
{
private static ISessionFactory sessionFactory;
private static ISession session;
public MyTestClass()
{
sessionFactory = A.Fake<ISessionFactory>();
session = A.Fake<ISession>();
A.CallTo(() => sessionFactory.OpenSession()).Returns(session);
}
[Fact]
public void MyTest()
{
var annualDetails =
new AnnualInformation
{
Id= 1,
AnnualCurrency= "string",
AnnualAmount= "Example"
}
var listOfAnnualInformation=
new List<AnnualInformation>
{
annualDetails
};
A.CallTo(session.QueryOver<AnnualInformation>()).WithReturnType<IList<AnnualInformation>>().Returns(listOfAnnualInformation);
var myInstance = new MyActualClass(sessionFactory);
myInstance.GetData();
}
}
На самом деле, если вы видите ниже код
session.QueryOver() .SelectList (...
будет возвращать результат» "в методе GetData(). После этого я манипулирую с «результатом», чтобы получить Id, CreationDate, AnnualAmount, AnnualCurrency
Поэтому очень важно, чтобы какое-то значение возвращалось из «результата». Моя проблема заключается в подсчет resulty всегда 0.
Я хочу ниже строки кода
A.CallTo (session.QueryOver()) WithReturnType>() Возвращает (listOfAnnualInformation)..;
, чтобы вернуть список с по крайней мере одним элементом. Теперь я считаю, что я уточнил свои требования.
Пожалуйста, предложите, что нужно делать здесь?
AFAIK, вы не можете издеваться статические методы с FakeItEasy и методы расширения статические методы –
Якуб, мой главный фокус здесь в том, что почему ниже линии не приносит мне желаемого результата A.CallTo (session.QueryOver .()) Возвращает (listOfAnnualInformation); –
Является ли 'QueryOver' методом расширения? Если это так, то FakeItEasy не может контролировать свой выход, AFAIK. –