CSLA的单元测试?怎么样?什么?

Don*_*nny 8 .net c# csla tdd unit-testing

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

rfc*_*ong 8

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

这一切都取决于您的基础设施.您使用的是IoC模式吗?

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

你在使用CSLA ObjectFactory吗?

如果你使用CSLA,你应该使用静态工厂方法,你有一个非公共构造函数.如果您仍想在BusinessObjects中对这些属性进行单元测试,则可以选择一些选项.

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

  2. 如果你不使用IoC,你可能会很幸运,如果你去了CSLA ObjectFactory解决方案 - 你可以使用模拟和存根.

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

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