各単体テストはどれくらい検査する必要がありますか? たとえば、私はこのテストを持っています
[TestMethod]
public void IndexReturnsAView()
{
IActivityRepository repository = GetPopulatedRepository();
ActivityController activityController = GetActivityController(repository);
ActionResult result = activityController.Index();
Assert.IsInstanceOfType(result, typeof(ViewResult));
}
そしてまた
[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>));
}
明らかに、最初のテストが失敗した場合、2 番目のテストも失敗するので、これら 2 つを 2 つのアサートで 1 つのテストに結合する必要がありますか? 私の感覚では、テストがより細かく、各テストのチェックが少ないほど、失敗の原因を見つけるのが速くなると思います。ただし、すべてのテストを実行するのに時間がかかる可能性がある、非常に小さなテストを多数持つことにはオーバーヘッドがあります。