2015-08-05 17 views
6

Mantık başarısız olduğunda birim sınaması nasıl durdurulur. Örnek aşağıdadır. XCTAssertEqual ("Merhaba", "Merhaba", "Geçti") durumu başarısız olduğunda yürütmeyi durdurma.XCTAssert break işlevi

func test_one() 
{  
XCTAssertEqual("Hello", "Hi", "Passed")  
let b = "Good Morning!" 
// code continues... 

} 
+0

bir test başarısız sonra bile çalışmaya devam eder anlamına gelir ve bu sizin testinde son satır olmalıdır, bu nedenle bu gerçekten kod yapısına sahip bir sorundur, Bu da yine sizin sorunlarınız için iyi bir cevabın sağlanamayacağı anlamına gelir. –

+1

Bir ayrıştırma mantığını test ediyorsak zor olacağım. Demek istediğim, servis yanıtım var, verileri ayrıştırmak ve veritabanında saklamak zorundayım. Yanıtın ayrıştırılmasının uygun olup olmadığını test etmeliyim. Açıkçası, tek bir fonksiyonda tüm ayrıştırma mantığına sahip olacağım ve bu yüzden birden fazla iddia koşulu olacak .. lütfen hatalı olduğumda beni düzeltin – Coder

+0

Hayır, sadece ortak bir kurulum yapabilir ve her testte bireysel önerilerde bulunabilirsiniz. Çoklu testler, testin detaylarda günlükleri okumadan neden başarısız olduğunu bilmediğiniz anlamına gelir. Bu, hızlı geri bildirim fikrini bozar. –

cevap

21

XCTestCase varsayılan olarak true bir değişken var continueAfterFailure: Bool sahiptir. Bu test sadece test başına bir sav ileri olmalıdır

override func setUp() { 
    super.setUp() 
    // Put setup code here. This method is called before the invocation of each test method in the class. 
    continueAfterFailure = false 
} 
+0

Teşekkürler Kevin'i okumanızı tavsiye ederim. Bu continueAfterFailure'ı 2 farklı durum arasında kullanabilir miyim. Benim sorumda belirtildiği gibi, XCTAssert 1 koşulu başarısız olursa, XCTAssert 2 koşulu yürütülmemelidir. – Coder

+0

ContinueAfterFailure öğesini false – Kevin

+0

olarak ayarladıktan sonra gerçekleşecek olan şey Başar! bu konuda bilmiyordum! – Sajjon