Я использую Moq на некоторое время, и для краткости я чаще всего не выразить настройки с помощью свободно синтаксис Mock.Of
...AutoFixture и свободно синтаксис Moq
var foo = Mock.Of<IFoo>(f => f.Method(It.IsAny<string>()) == 7 && f.Property == "Hi");
var sut = new Whatever(foo);
В последнее время я начал играя с AutoFixture и не может найти эквивалентный синтаксис для одновременного выражения нескольких настроек. Я понимаю, что я могу выразить то же самое, используя Freeze
...
var foo = fixture.Freeze<Mock<IFoo>>();
foo.Setup(f => f.Method(It.IsAny<string>()).Returns(7);
foo.Setup(f => f.Property).Returns("Hi");
var sut = fixture.Create<Whatever>();
... но если это вообще возможно, я хотел бы получить преимущества automocking, и сохранить краткость беглого установка MOq , Стилистические аргументы в сторону, делает ли AutoFixture каким-либо образом, чтобы я мог свободно выражать эти настройки? Если нет, есть ли какая-либо оптимизация, которую я могу использовать, чтобы сделать настройки AutoFixture более краткими?
Рассматривали ли вы с помощью NSubstitute? Это OOTB * значительно * более чистое, чем Moq (есть также библиотека клея AutoNSubstitute), поэтому, если у вас нет существенной невыносимой стоимости, у вас нет ничего потерянного, кроме скобок :) –
@RubenBartelink, в данном случае я конкретно работаю с 10k + Moq/NUnit в корпоративной среде, поэтому коммутатор инфраструктуры, вероятно, маловероятен.Тем не менее, для моих личных проектов я определенно посмотрю на это (несколько сравнений, которые я смог найти в Интернете, были совершенно надуманными и сравнили NSubstitute с непроходимым синтаксисом Moq, который довольно «многословен», поэтому мне придется сделать немного исследований и попробовать сами). – ScheuNZ
Отличный смысл в этом контексте: P –