我是XUnit和Moq的新手。我有一个以字符串为参数的方法,如何使用XUnit处理异常。
[Fact]
public void ProfileRepository_GetSettingsForUserIDWithInvalidArguments_ThrowsArgumentException() {
//arrange
ProfileRepository profiles = new ProfileRepository();
//act
var result = profiles.GetSettingsForUserID("");
//assert
//The below statement is not working as expected.
Assert.Throws<ArgumentException>(() => profiles.GetSettingsForUserID(""));
}
被测方法
public IEnumerable<Setting> GetSettingsForUserID(string userid)
{
if (string.IsNullOrWhiteSpace(userid)) throw new ArgumentException("User Id Cannot be null");
var s = profiles.Where(e => e.UserID == userid).SelectMany(e => e.Settings);
return s;
}
1
您所说的“未按预期工作”是什么意思?(另外,请更清晰地设置代码格式。使用预览,然后在看似想要阅读的外观时发布。)
—
Jon Skeet
提示:您在打电话
—
Jon Skeet
GetSettingsForUserID("")
之前先打电话Assert.Throws
。该Assert.Throws
呼叫不能帮助你。我建议您不要对AAA保持僵化……