2012-09-10 126 views
0

我在学写单元测试。我遵循存储库模式并为我的控制器创建了一个存储库。支持真正的和假的dbcontexts,现在我准备开始编写测试。我的问题是我不知道要测试什么。单元测试示例

  1. 我应该测试控制器,如果大部分的工作是将数据传递到 库比传递的结果有何看法?
  2. 在我的仓库中,我有像下面这样的方法。他们非常直截了当,如果他们被测试?
  3. 我应该测试验证条件吗?
  4. 最重要的事情。你能给我一些asp MVC单元测试的例子吗?我想,像[方法]应该[无论]这样的语句列表可能会有所帮助。但是恐怕很难想出一些不太明显的事情。也许有人愿意分享他们的测试文件/项目之一或推荐值得一看的开源项目?

     public virtual void Update(T entity) 
         { 
          Db.Attach(entity); 
          Db.SaveChanges(); 
         } 
    
         public virtual void Save(T entity) 
         { 
          Db.Add(entity); 
          Db.SaveChanges(); 
         } 
    
         public virtual void Remove(T entity) 
         { 
          Db.Delete(entity); 
          Db.SaveChanges(); 
         } 
    

回答

1

不幸的是,这个话题是太宽泛,在这里给出一个简单的答案。 Google是你的朋友。我搜索了“为c#编写单元测试”,并获得了超过200万个响应。关于如何以及何时编写单元测试,有许多竞争哲学。我建议你研究 - 从谷歌开始 - 阅读几种方法,根据你自己的喜好,编码风格以及你正在试图解决哪一个最适合的具体问题来决定。

1
  1. 我应该测试控制器,如果大部分的工作是将数据传递到存储库比传递的结果有何看法?

每个定义一个控制器只应模型和视图之间的适配器。因此它不应该处理(即业务规则)信息。

听起来像你的控制器没有,这是很好的。如果您正在使用视图模型,那么只有一件事情可能会出错:那就是您无法正确处理ModelState(即,如果出现错误,请回报)。

所以,如果你想测试,请继续。

在我的资源库中,我有像下面这样的方法。他们非常直截了当,如果他们被测试?

否。因为您不验证传入数据是否正确。测试只是集成测试而不是单元测试。

我应该测试验证条件吗?

如果你想确认你确认了什么应该被验证。

最重要的事情。你能给我一些asp MVC单元测试的例子吗?我想,像[方法]应该[无论]这样的语句列表可能会有所帮助。但是恐怕很难想出一些不太明显的事情。也许有人愿意分享他们的测试文件/项目之一或推荐值得一看的开源项目?

取决于你想测试什么。