8

有没有人有 CSLA 中的单元测试示例。我发现用这个框架实现 TDD 很困难,我想知道是否有任何简单的方法可以做到这一点。除了可以免费构建我的测试对象的 TypeMock Isolator 之外,我还可以使用其他任何 Mock 框架吗?如果您有任何建议和样品/示例,我会很高兴吗?谢谢你。

4

1 回答 1

8

我不确定我是否在告诉您一些新信息,但从 CSLA 4 开始,对您的自定义 BusinessRules 进行单元测试会更容易,如果您使用存储库作为数据层,您可以模拟存储库以测试业务对象前端使用它们。请记住,业务对象只不过是一堆具有属性的对象,您应该使用业务规则来实现业务逻辑。这些业务规则只是您可以毫无问题地进行单元测试的类。

这完全取决于您的基础架构如何。你在使用 IoC 模式吗?

您使用的是哪个版本的 CSLA?

您使用的是 CSLA ObjectFactory 的吗?

如果您按照应使用的方式使用 CSLA,您将拥有静态工厂方法,并且您将拥有一个非公共构造函数。如果您仍想对 BusinessObjects 中的这些属性进行单元测试,您可以从一些选项中进行选择。

  1. 如果您将 IoC 用于数据层(存储库),那么您可以模拟这些并通过使用模拟和存根配置 IoC 并在测试方法中调用工厂方法并进行测试来测试业务对象。

  2. 如果您不使用 IoC,如果您选择了 CSLA ObjectFactory 解决方案,您可能会很幸运——在那里您可以使用模拟和存根。

  3. 如果您不使用 IoC 并且不使用 ObjectFactory,那么您将无法轻松地对业务对象进行单元测试。但是仍然可以通过注册自定义 DataPortal。在 DataPortal 中,您可以使用反射来构造业务对象并为该特定业务对象解析一些模拟/存根。这并不容易,但它是可行的。

对不起,我没有任何例子。

于 2012-02-25T21:10:36.953 回答