Я пишу некоторые тесты на устойчивость, но я получаю сообщение об ошибке, что NHibernate не может работать с подделками FakeItEasy. В частности, ошибка:«Отсутствие ошибки« класса »при тестировании Fluent NHibernate с FakeItEasy
Нет стойкая бактерия для: Castle.Proxies.FacilityProxy
Если я пишу тест, как показано ниже, он будет работать нормально и пройти
[Test]
public void CanCorrectlyCreateFacilityTable()
{
new PersistenceSpecification<Facility>(session, new DataEqualityComparer())
.CheckProperty(f => f.Id, 1)
.CheckProperty(f => f.Name, _facility.Name)
.CheckReference(f => f.Owner, new Client())
.VerifyTheMappings();
}
Однако, если Я создаю фальшивку:
IClient _client;
_client = A.Fake<Client>();
A.CallTo(() => _client.Name).Returns("Preston");
И передать это вместо теста - кажется, f ail с ошибкой выше:
[Test]
public void CanCorrectlyCreateFacilityTable()
{
new PersistenceSpecification<Facility>(session, new DataEqualityComparer())
.CheckProperty(f => f.Id, 1)
.CheckProperty(f => f.Name, _facility.Name)
.CheckReference(f => f.Owner, _client)
.VerifyTheMappings();
}
Кто-нибудь знает, есть ли обходной путь или возможная ошибка на моем конце?
Я провел здесь немного исследований, но, похоже, не мог найти этот вопрос, который уже задан. Большинство озаботились с конфигурацией FakeItEasy или конфигурации NHibernate - который, кажется, не быть проблемой: How do I test extension method of Nhibernate which does not return the value even after specifying return in fakeiteasy? Can I sensibly mock this NHibernate query?
Я не использовал тесты 'PersistenceSpecification' некоторое время, но если я правильно помню, isn В целом, чтобы убедиться, что интеграция с базой данных настроена правильно? Если да, зачем вам подделывать/издеваться над тестируемым объектом? –
@AndrewWhitaker есть несколько свойств в классе Client, которые я предпочитаю оставаться защищенными, а не публичными. Издевательство над классом казалось более элегантным решением, но, согласно приведенному ниже ответу Блэра, я думаю, что мне нужно просто использовать сам класс. Спасибо, что потянулся! – prestonsmith