6
Jestem początkującym użytkownikiem XUnit i Moq. Mam metodę, która przyjmuje ciąg jako argument.Jak obsługiwać wyjątek przy użyciu XUnit.Wystąpienie wyjątku przy użyciu 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(""));
}
Sposób badanego
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;
}
Co masz na myśli mówiąc „nie działa zgodnie z oczekiwaniami”? (Proszę również sformatować swój kod w bardziej przystępny sposób.) Użyj podglądu i opublikuj, kiedy wygląda, jakbyś chciał, żeby wyglądało, gdybyś go czytał.) –
Wskazówka: nazywasz 'GetSettingsForUserID (" ")' przed tobą zacznij wywoływać 'Assert.Throws'. Wywołanie 'Assert.Throws' nie może ci w tym pomóc. Sugeruję bycie mniej sztywnym o AAA ... –