2017-04-04 11 views
5

Bir NSDocument öğesinin bir dosya oluşturup kaydettiğini (sonra açılır ve içeriği yeniden doğrular) bir test vakası kaydetmeye çalışıyorum. Sorun, bir NSSavePanel başlatıldığında, XCTestCase kaydı durduğunda, test durumumu kaydeder. Kayıt/açık panellerle etkileşime giren test örneklerinin örneklerini aramaya çalıştım, ancak hiç şansım olmadı.XCTestCase dosyayı kaydetme? (Kayıt NSSavePanel)?

XCTestCases'ın NSSavePanels ile etkileşimde bulunup bulunamayacağı konusunda herhangi bir ayrıntıya işaret eden var mı? Kod örneği tercih edilebilir, ancak dokümantasyon da harika olurdu!

cevap

-1

Evet yapabilir.

XCUIApplication XCUIApplication yararlanan

minimal API vardır, ancak birkaç yöntemler özel dikkat gerektirirler:

-launch - Varsayılan olarak, yeni şablonları, yeni başlatır -setup bir satır ekleyin XCTestCase XCUIApplication ve başlattı. -sala çağrıldığında, hedef uygulamanın daha önce çalışan örneğini sonlandırır. Bu, varsayılan olarak, eklediğiniz her test vakası, uygulamanızı her test yönteminden önce yeniden başlatır. Tek bir XCUIApplication uygulamasının paylaşılan bir başvurusunu kullanarak, yalnızca bir kez başlattığınız gibi bunu önleyebilirsiniz, ancak genel test sürelerinin dışında, bunun için fazla bir avantaj yoktur.

-launchEnvironment - Başlatma sırasında hedef uygulamaya geçirilen özel ortam değişkenlerinin kontrolünü sağlar. Bu, (diğer şeyler arasında), uygulamanızın otomatik UI testi için hedef olarak çalışırken ne zaman kullanıldığını tanımlamak için kullanabileceği özel bir değişken ayarlayarak kullanılabilir. Bu yararlı olsa da, mantıklı kullanılmalıdır. UI testleriniz, kullanıcılarınızın aynı kodu kullanmadıkları sürece çok yardımcı olmaz.

UI Kayıt Xcode 7 ile

Apple size UI gezinmek ve Düzenlediğiniz her ne şimdiki test durumu yöntemi sizin için kaydedilen bu işlemler olur sağlayan bir kayıt UI Testi düğmesine eklemiştir. Teoride bu kulağa harika gelse de, pratikte mevcut uygulamayı buggy ve güvenilmez buldum. Kullanmak için bazı ipuçları:

Yavaş Çekimde Hareket Etme - Tıklamalarınızı ve klavye basmalarını çok hızlı veya hızlı bir şekilde gerçekleştirmek, bazılarının Xcode tarafından atlanmasına neden olabilir.

Hata Bildir - Kayıt bazı durumlarda çalışmaz. Bir NSSavePanel'daki Kaydetme düğmesini tıklattığınızda çalışmayan bir kayan Unicode karakteriyle bir dize kaydedilir. Çoğu kez, kayıt aşağıdaki gibi genel bir hata mesajı ile başarısız olur. Öneri? Test vakalarınızı 'sıfırdan' yazmak için bir başlangıç ​​noktası olarak kaydedin.

enter image description here

+0

Sağol ama bu aslında bir XCTestCase bir sistem NSSavePanel ile etkileşim ilgisi cevap vermiyor? – Kyle