Я не уверен, что сообщаю вам какую-то новую информацию, но из CSLA 4 проще модульное тестирование ваших пользовательских BusinessRules, и если вы используете репозитории в качестве слоя данных, вы можете смоделировать репозитории для тестирования бизнеса объекты вместе с интерфейсом, используя их. Просто помните, что бизнес-объекты - это не больше, чем набор объектов со свойствами, в которых вы должны использовать бизнес-правила для реализации бизнес-логики. Эти бизнес-правила - это просто классы, которые вы можете без проблем тестировать.
Все зависит от вашей инфраструктуры. Используете ли вы шаблон IoC?
Какую версию CSLA вы используете?
Используете ли вы CSLA ObjectFactory?
Если вы используете CSLA так, как должно быть, у вас будут статические фабричные методы, и у вас будет не публичный конструктор. Если вы все еще хотите выполнить модульное тестирование этих свойств внутри BusinessObjects, вы можете выбрать один из нескольких вариантов.
Если вы используете IoC для слоя данных (репозитории), вы можете смоделировать их и протестировать бизнес-объекты, настроив IoC с помощью имитаторов и заглушек, а в методе test вызвать метод фабрики и выполнить тест.
Если вы не используете IoC, вам может повезти, если вы выбрали решение CSLA ObjectFactory - там вы можете использовать макеты и заглушки.
Если вы не используете IoC и не обращаетесь к ObjectFactory, вы не можете легко провести модульное тестирование бизнес-объектов. Но это все еще возможно, зарегистрировав собственный DataPortal. Внутри DataPortal вы можете использовать отражение, чтобы сконструировать бизнес-объект и разрешить некоторые макеты / заглушки для этого конкретного бизнес-объекта. Это не легко, но выполнимо.
Извините, что у меня нет примеров.