有没有人有 CSLA 中的单元测试示例。我发现用这个框架实现 TDD 很困难,我想知道是否有任何简单的方法可以做到这一点。除了可以免费构建我的测试对象的 TypeMock Isolator 之外,我还可以使用其他任何 Mock 框架吗?如果您有任何建议和样品/示例,我会很高兴吗?谢谢你。
1 回答
我不确定我是否在告诉您一些新信息,但从 CSLA 4 开始,对您的自定义 BusinessRules 进行单元测试会更容易,如果您使用存储库作为数据层,您可以模拟存储库以测试业务对象前端使用它们。请记住,业务对象只不过是一堆具有属性的对象,您应该使用业务规则来实现业务逻辑。这些业务规则只是您可以毫无问题地进行单元测试的类。
这完全取决于您的基础架构如何。你在使用 IoC 模式吗?
您使用的是哪个版本的 CSLA?
您使用的是 CSLA ObjectFactory 的吗?
如果您按照应使用的方式使用 CSLA,您将拥有静态工厂方法,并且您将拥有一个非公共构造函数。如果您仍想对 BusinessObjects 中的这些属性进行单元测试,您可以从一些选项中进行选择。
如果您将 IoC 用于数据层(存储库),那么您可以模拟这些并通过使用模拟和存根配置 IoC 并在测试方法中调用工厂方法并进行测试来测试业务对象。
如果您不使用 IoC,如果您选择了 CSLA ObjectFactory 解决方案,您可能会很幸运——在那里您可以使用模拟和存根。
如果您不使用 IoC 并且不使用 ObjectFactory,那么您将无法轻松地对业务对象进行单元测试。但是仍然可以通过注册自定义 DataPortal。在 DataPortal 中,您可以使用反射来构造业务对象并为该特定业务对象解析一些模拟/存根。这并不容易,但它是可行的。
对不起,我没有任何例子。