Unit testing 在将CSLA框架与WCSF结合使用时实现Presenter的单元可测试性
WCSF使用模型-视图-演示者(MVP)模式来组织/构建网站的源代码。当MVP模式被正确使用时,它提供了关注点分离、演示者逻辑的单元可测试性等Unit testing 在将CSLA框架与WCSF结合使用时实现Presenter的单元可测试性,unit-testing,csla,wcsf,Unit Testing,Csla,Wcsf,WCSF使用模型-视图-演示者(MVP)模式来组织/构建网站的源代码。当MVP模式被正确使用时,它提供了关注点分离、演示者逻辑的单元可测试性等 如何使WCSF和CSLA框架发挥良好的作用(协同工作),以实现演示者逻辑的单元可测试性。为了实现演示者逻辑的单元可测试性,需要模拟或剔除所有数据访问和其他依赖项。在CSLA对象内执行数据门户方法时,这些数据门户方法的内容应调用数据服务来获取和更新该数据。这些web服务应该是基于接口的,以便可以模拟它们 以下是填充employee对象的示例: privat
如何使WCSF和CSLA框架发挥良好的作用(协同工作),以实现演示者逻辑的单元可测试性。为了实现演示者逻辑的单元可测试性,需要模拟或剔除所有数据访问和其他依赖项。在CSLA对象内执行数据门户方法时,这些数据门户方法的内容应调用数据服务来获取和更新该数据。这些web服务应该是基于接口的,以便可以模拟它们 以下是填充employee对象的示例:
private void DataPortal_Fetch(SingleCriteria<Employee, int> criteria)
{
IEmployeeDTO data = DataServiceContext.Current.EmployeeDataService.GetEmployee(criteria.Value);
// Just do left to right copying here
LoadProperty<int>(IdProperty, data.Id);
}
下面是使用Linq 2 SQL的示例数据服务concreate类:
namespace XXX.DataServices.Linq
{
public class EmployeeDataService : IEmployeeDataService
{
public IEmployeeDTO GetEmployee(int id)
{
// use Linq to SQL to get the data and transform that class into IEmployeeDTO
}
}
}
以下是用于测试的示例数据服务:
namespace XXX.DataServices.Testing
{
public class IEmployeeDTO GetEmployee(int id)
{
// mock up several IEmployeeDTO objects with known data
}
}
namespace XXX.DataServices.Testing
{
public class IEmployeeDTO GetEmployee(int id)
{
// mock up several IEmployeeDTO objects with known data
}
}