В нашем решении у нас была действительно древняя версия JustMock.Мы написали около 7000 тестов, и один шаблон, который иногда появляется, состоит в том, чтобы иметь макет по умолчанию для определенного интерфейса для всех тестовых случаев и в некоторых тестах «переопределять» этот макет по умолчанию.
Это означает, что в некоторыхИз сотен тестов мы создаем макет и устраиваем его, а затем создаем еще один макет того же типа и устраиваем его тоже.Затем мы сделаем утверждение об этом втором макете.
Несколько месяцев назад мы обновились до текущей версии, и теперь эти множественные макеты одного типа больше не работают.Возьмите пример ниже.Я создаю два Mock одного типа и утверждаю, что второй mock вызывается один раз.В версии JustMock 2012 года этот тест не пройден, но в более поздней версии он не пройден.
Так что же делает JustMock, что мешает мне делать множественные макеты одного типа и утверждать их?И почему он это делает?
public interface IFoo
{
void Bar();
}
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
var bar = Mock.Create<IFoo>();
Mock.Arrange(() => bar.Bar()).OccursOnce();
var foo = Mock.Create<IFoo>();
Mock.Arrange(() => foo.Bar()).OccursOnce();
Mock.Assert(foo); // Succeeds in recent versions, fails in older versions as I would expect
//Mock.Assert(bar); // Would fail as expected
}
}