Как я могу издеваться над классом без интерфейса, используя AutoMocker StructureMap? - PullRequest
2 голосов
/ 14 октября 2011

Я большой сторонник тестирования и думаю, что создание дополнительного интерфейса для написания юнит-тестов - это небольшая цена. Я добавил автомакер структурной карты в набор тестов, и он, похоже, совершенно не умеет имитировать класс. У насмешника Rhino есть возможность издеваться над публичными классами, если публичные методы помечены как виртуальные.

Я бы хотел избавиться от интерфейсов, если это возможно. Любая помощь приветствуется.

1 Ответ

1 голос
/ 06 декабря 2012

Прежде чем ответить на этот вопрос, я просто хотел бы отметить, что он полностью отрицает цель использования StructureMap, когда вы не используете интерфейсы. (Ну, не совсем, но я не могу понять, почему вы решили использовать StructureMap в первую очередь ...). вы сделаете так, что вся ваша логика будет находиться в одном классе или в 20-30 классах, все они тесно связаны, что опять-таки лишает смысла использование StructureMap. Сказав, что я думаю, что это должно работать в ситуациях, когда вам нужно смоделировать конкретный класс

[Test]
public void TestMethod()
{
    // Arrange
    var service = new RhinoAutoMocker<BusinessRuleService>();
    service.PartialMockTheClassUnderTest();
    service.ClassUnderTest.Expect(x => x.VirtualMethodImTesting());

    // Act
    service.ClassUnderTest.CallableMethod();

    // Assert
    service.ClassUnderTest.VerifyAllExpectations();
    // ... or other stuff ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...