Je suis nouveau pour les tests unitaires. Je veux faire quelque chose comme suit:Test unitaire n'atteignant pas un code
[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);
}
Mon but ici est de tester que la catégorie n'a pas été supprimé en faisant le Assert.IsNotNull()
... mais comme il est de jeter l'exception, il est ne pas atteindre ce morceau de code. Une idée de comment je peux améliorer le test ci-dessus?
En fait, dans mon API j'fous une exception dans le cas où la catégorie est associée à un test ... Mon extrait est:
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;
}
}
essayez-vous de supprimer la catégorie? Je ne suis pas capable de comprendre le flux de votre code. qu'est-ce que category.Delete (user) faire? est-ce là où est le problème? – Rahul
Je pense qu'il essaie de vérifier que l'exception de suppression n'a pas été lancée de façon non-régulière – BitKFu