首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >购物车单元测试/集成指南

购物车单元测试/集成指南
EN

Stack Overflow用户
提问于 2009-12-02 22:09:23
回答 2查看 1.5K关注 0票数 0

需要一些关于如何对购物车(.net mvc,c#)进行单元测试的指导。

我想使用sqllite,因为我正在使用nhibernate,这样我就可以创建一个内存中版本的数据库来进行集成测试。

所以我有一个购物车对象:

代码语言:javascript
复制
public class Cart
{
      void Add(Item item);
      void Delete(Item item);

      void CalculateTotalBLah();
}

因此,方法Add看起来可能如下:

代码语言:javascript
复制
public void Add(Item item)
{
     ItemDAO item = new SomeFactory();

     item.Add(item);
}

所以有两件事我要测试,我猜:

  1. cart对象的内存中表示将项添加到Cart中。
  2. 数据库是正确同步的。内存中的对象。

我相信数据库测试是相当直接的。

如何测试#1,如何消除db操作的依赖性?nunit是为我做的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-12-02 22:20:29

您可以使用存储库模式。然后为存储库创建一个莫克。Mock应该确保调用了保存。购物车构造函数应该使用一个IRepository,这样您就可以发送一个模拟或真实的东西。

票数 1
EN

Stack Overflow用户

发布于 2009-12-02 22:21:11

使用活动记录模式进行单元测试代码是非常困难的。您可以通过使用“单一责任原则”来简化代码的测试,这意味着一个类对一件事负责。cart类负责2件事:数据访问和购物车业务逻辑。您可以使用单独的存储库或数据访问的查询对象来简化这段代码的测试。如果你不想修改你的代码,你可以试着用类型隔离器来模拟(据我所知,其他的模拟框架不能模拟这类代码,但我个人并不需要打字机)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1836192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档