Я новичок в модульном тестировании и делаю некоторые эксперименты с xUnit и AutoFixture.AutoFixture: Поставьте аргумент конструктора Func в качестве аргумента конструктора
Это конструктор класса я хочу, чтобы тест:
public PokerClientIniGenerateCommand(
Func<TextWriter> writerCreator,
FranchiseInfo franchise)
{
// some code here
}
Я делаю это:
public abstract class behaves_like_poker_client_ini_generate_command : Specification
{
protected PokerClientIniGenerateCommand commandFixture;
protected behaves_like_poker_client_ini_generate_command()
{
var fixture = new Fixture();
commandFixture = fixture.Create<PokerClientIniGenerateCommand>();
}
}
Я не знаю, как я могу установить параметры конструктора (в основном первый параметр - часть func).
В моей бизнес-логике я инстанцирование этого класса, как это:
new PokerClientIniGenerateCommand(
() => new StreamWriter(PokerClientIniWriter),
franchise));
так в моем тесте я должен назвать FUNC так:
() => new StringWriter(PokerClientIniWriter)
Но как я могу установить это с помощью AutoFixture. Любая помощь будет примером.
Что делать, если Func принимает параметр? т.е.: '' 'Func' ''. Можете ли вы сказать Autofixture, что делать с параметром? –
bj0
С 'Func func = x => new StringWriter();' вы можете сделать 'fixture.Inject (func (fixture.Create ()));'. –
Хорошо, да, когда я задал вопрос, я не понимал, что вы можете просто вставить Func <>, спасибо – bj0