Example
我有一个存储库类(DAL):
public class MyRepository : IMyRepository
{
public void Delete(int itemId)
{
// creates a concrete EF context class
// deletes the object by calling context.DeleteObject()
}
// other methods
}
我还有一个服务等级(BLL):
public class MyService
{
private IMyRepository localRepository;
public MyService(IMyRepository instance)
{
this.localRepository = instance;
}
public void Delete(int itemId)
{
instance.Delete(itemId);
}
// other methods
}
为 MyRepository 创建单元测试比实现它需要更多时间,因为我必须模拟实体框架上下文。
但是为 MyService 创建单元测试似乎是无稽之谈,因为它只调用存储库。我所能检查的就是验证它是否确实调用了存储库删除方法。
Question
您建议如何对这对删除方法进行单元测试。两个都?一?没有任何?你会测试什么?
是的,我肯定会为服务层编写一个单元测试。这样做的原因是,您不仅要测试您的实现现在是否有效,还要测试它将来是否会继续有效。
这是一个需要理解的重要概念。如果后来有人更改了您的 ServiceLayer,并且没有单元测试,您如何验证该功能是否继续工作?
我还会为您的 DAL 编写测试,但我会将它们放在一个名为 DataTests 或其他东西的单独程序集中。此处的目的是跨程序集隔离您的关注点。单元测试确实不应该关心您的 DAL。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)