我需要测试确切的Argument Exception是谨慎的.是否真的可以理解方法中的异常是谨慎的吗?
public JsonResult Create(TeamViewModel teamViewModel)
{
JsonResult result = null;
try
{
// here exception throws
var domainTeam = teamViewModel.ToDomain();
...
}
catch (ArgumentException ex)
{
this.ModelState.AddModelError(string.Empty, ex.Message);
result = this.Json(this.ModelState);
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
我的单元测试此方法:
public void Create_InvalidTeamAchievements_ArgumentExceptionThrown()
{
Exception exception = null;
string invalidAchievements = CreateInvalidTeamAchievements();
// Arrange
var viewModel = new TeamMvcViewModelBuilder().WithAchievements(invalidAchievements).Build();
var sut = _kernel.Get<TeamsController>();
// Act
try
{
sut.Create(viewModel);
}
catch (ArgumentException ex)
{
exception = ex;
}
// Assert
VerifyExceptionThrown(exception, string.Format(Resources.ValidationTeamAchievements,
Constants.Team.MAX_ACHIEVEMENTS_LENGTH));
}
Run Code Online (Sandbox Code Playgroud)
你正在以错误的方式测试它.应该测试功能以不抛出异常,因为您已经在Create Method中捕获了异常.相反,你应该断言JsonResult 包含你的ModelState应该有错误,以防Create方法中引发异常.
| 归档时间: |
|
| 查看次数: |
72 次 |
| 最近记录: |