XUnit

2017-07-10 36 views
6

kullanarak bir özel durum belirleme XUnit ve Ad. Ben bir argüman olarak string alır bir yöntem var.Nasıl XUnit kullanarak bir istisna ele almak. TestXUnit

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; 
} 
+0

siz "beklendiği gibi çalışmıyor" ile ne demek istiyorsunuz? (Ayrıca, lütfen kodunuzu daha okunaklı bir şekilde biçimlendirin. Önizlemeyi kullanın ve okuyup okumadığınızı nasıl görünmesini istediğinizi belirtin.) –

+2

İpucu: sizden önce GetSettingsForUserID ("") 'yi çağırıyorsunuz 'Assert.Throws' çağırmaya başla. 'Assert.Throws' araması oraya size yardımcı olamaz. AAA hakkında daha az katı olmayı öneriyorum ... –

cevap

10

altında

[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("")); 
} 

Yöntem Assert.Throws ifade özel durumu yakalamak ve türünü iddia olacaktır. Ancak, test edilen yöntemin, iddia edilen ifadenin dışında olduğunu ve bu nedenle test vakasının başarısız olduğunu söylüyorsunuz.

[Fact] 
public void ProfileRepository_GetSettingsForUserIDWithInvalidArguments_ThrowsArgumentException() 
{ 
    //arrange 
    ProfileRepository profiles = new ProfileRepository(); 
    // act & assert 
    Assert.Throws<ArgumentException>(() => profiles.GetSettingsForUserID("")); 
} 

AAA içine eylem çıkarabilir aşağıdaki üzerine eğilmiş Eğer kendi değişken

[Fact] 
public void ProfileRepository_GetSettingsForUserIDWithInvalidArguments_ThrowsArgumentException() 
{ 
    //arrange 
    ProfileRepository profiles = new ProfileRepository(); 
    //act 
    Action act =() => profiles.GetSettingsForUserID(""); 
    //assert 
    Assert.Throws<ArgumentException>(act); 
}