Я использую NUnit, у меня есть следующий код, который будет протестирован.
public class StudentPresenter
{
IView myview;
Repository myrepo;
public StudentPresenter(IView vw, Data.Repository rep)
{
this.myview = vw;
this.myrepo = rep;
this.myview.ButtonClick += myview_ButtonClick;
}
public void myview_ButtonClick()
{
try
{
var d = this.myrepo.GetById(int.Parse(myview.GivenId));
this.myview.GetStudent(d);
}
catch(Exception e)
{
}
}
}
Мне нужно протестировать myview_ButonClick()
Предположим, я протестирую этот метод, и он выдаст исключение, если myview.GivenId
имеет значение null?
Итак, я пишу модульный тест, как показано ниже:
[Test]
public void Button1Click_NullText_ThrowException()
{
var mock = Substitute.For<IView>();
StudentPresenter sp = new StudentPresenter(mock, repo);
mock.GivenId = string.Empty;
Assert.Throws<Exception>(()=>sp.myview_ButtonClick());
}
Но тест не удался .. Почему? (потому что в моем блоке улова нет броска). Но я не хочу ничего бросать, я просто хочу, чтобы у него была способность ловить. Так можно ли протестировать?
Exception
) и ничего не делать - это плохая практика. - person Jeroen Vannevel   schedule 30.04.2014