相关疑难解决方法(0)

你用单元测试测试什么?

TDD现在似乎在每个人的嘴唇上,我自己尝试了一些,但我认为我没有得到这个想法.我正在抓住如何编写单元测试,但我不明白我的单元测试应该测试什么.

  1. 如果我有一个返回数据列表的操作方法,我应该验证什么?只是视图名称是正确的,还是我应该验证数据?
  2. 如果我也应该测试数据,我不会两次编写相同的代码吗?如果我使用相同的方法来检索我要比较的数据,那么测试数据的用途是什么?
  3. 我是否应该测试添加/编辑数据的方法?如何以正确的方式验证是否已添加/编辑/删除记录?

我知道这是一个很大的问题,但我没有因为在互联网上阅读文章而变得更聪明,因为他们似乎都关心如何测试,而不是关注什么.

作为一个例子 - 我有(或将要写)一个GuestbookController,其中包含查看,添加,编辑和删除帖子的方法.我需要测试什么?我该怎么做?

.net tdd asp.net-mvc unit-testing

29
推荐指数
1
解决办法
1814
查看次数

每个单元测试多少次?

每个单元测试应该检查多少?比如我有这个测试

[TestMethod]
public void IndexReturnsAView()
{
    IActivityRepository repository = GetPopulatedRepository();
    ActivityController activityController = GetActivityController(repository);
    ActionResult result = activityController.Index();
    Assert.IsInstanceOfType(result, typeof(ViewResult));
}
Run Code Online (Sandbox Code Playgroud)

并且

[TestMethod]
public void IndexReturnsAViewWithAListOfActivitiesInModelData()
{
    IActivityRepository repository = GetPopulatedRepository();
    ActivityController activityController = GetActivityController(repository);
    ViewResult result = activityController.Index() as ViewResult;
    Assert.IsInstanceOfType(result.ViewData.Model, typeof(List<Activity>));
}
Run Code Online (Sandbox Code Playgroud)

显然,如果第一次测试失败,那么第二次测试也会失败,那么这两次测试应该合并为一次测试吗?我的感觉是,测试越精细,每个测试检查越少,找到失败原因的速度就越快.但是,进行大量非常小的测试会产生开销,这可能会花费时间来运行所有测试.

testing tdd unit-testing testing-strategies

5
推荐指数
1
解决办法
1188
查看次数