Я хотел бы создать настройку, которая настраивает AutoFixture для передачи типов, которые у нее есть для реализации вместо Moq. Как я могу сделать это в целом?принудительное реле для насмешливого каркаса
Чтобы уточнить, считают:
public class test
{
public string foo;
public test(IDictionary<string, string> stuffing)
{
foo = stuffing["bogus"];
}
}
[TestMethod]
public void testInjection()
{
var fixture = new Fixture();
bool didThrow;
try
{
var sut = fixture.Create<test>();
didThrow = false;
}
catch
{
didThrow = true;
}
Assert.IsTrue(didThrow);
}
тест проходит. AutoFixture предоставила мне фиктивную коллекцию, совместимую с IDictionary. Я бы хотел, чтобы тест потерпел неудачу ... в частности, я хотел бы передать IDictionary в Moq и получить то, что по умолчанию не жалуется на отсутствие ключей.
Я хотел бы использовать что-то наподобие fixture.UseAutoMoq().ForceRelay<Dictionary<string,string>>()
.
Я также открыт для лучших предложений ... но рассмотрим класс испытания, запечатанный. Я тестирую код, который часто использует этот шаблон, и я хочу, чтобы вокруг него было тестовое соглашение.
Этот [ответ] (http://stackoverflow.com/a/20004789/467754) объясняет, как вы можете передавать конкретные типы в Moq при использовании AutoFixture. –
Вышеприведенный тест проходит, потому что вокруг утверждения также есть блок «try» ... –
@MarkSeemann да, в основном, этот тест проходит, потому что конкретный экземпляр словаря выдает исключение. Цель - IDictionary, который не бросает по какой-либо причине (пустой). – cocogorilla