单元测试未达到一段代码

lea*_*ing 2 c# unit-testing

我是单元测试的新手.我想做点如下的事情:

[Test]
[ExpectedException(ExceptionType = typeof(Exception))]
public void TestDeleteCategoryAssociatedToTest()
{
    Category category = CategoryHelper.Create("category", Project1);
    User user;
    Test test1 = IssueHelper.Create(Project1, "summary1", "description1", user);
    test1.Category = category;
    category.Delete(user);          
    Assert.IsNotNull(Category.Load(category.ID));
    Assert.IsNotNull(Test.Load(test1.ID).Category);
}
Run Code Online (Sandbox Code Playgroud)

我的目标是测试类别没有被删除Assert.IsNotNull()...但由于它抛出异常,它没有达到那段代码.知道如何改进上述测试吗?

实际上在我的API中,如果类别与Test相关联,我会抛出异常......我的代码片段是:

 IList<Test> tests= Test.LoadForCategory(this);
 if (tests.Count > 0)
 {
     throw new Exception("Category '" + this.Name + "' could not be deleted because it has items assigned to it.");
 }
 else
 {
     base.Delete();
     foreach (Test test in tests)
     {
         test.Category = null;
     }
 }
Run Code Online (Sandbox Code Playgroud)

lep*_*pie 9

每次测试只尝试并测试一种功能.IOW分别编写成功和失败测试.