2010-11-19 19 views
2

Bir uygulamayı çalıştırmak mümkün mü ve bunun üstüne keyPress olaylarını uygulamaya gönderiyor ve qtestlib kullanarak sonuçları test ediyor musunuz?QT: simüle edilmiş birim testi

Evet, birisi bana nasıl yapılacağını örnek verebilir mi?

Hayır, kimse bana yukarıdaki şartı yerine getirmenin daha iyi bir yolunu gösterir mi?

Teşekkür ...

+1

Test uygulamaları bu şekilde çok zordur çünkü sonuçlar pencere konumlandırmasına, ekran çözünürlüğüne bağlıdır. Mümkünse, UI'yi uygulamanın iş mantığından ayırın ve işin üstüne testler yazın. mantık. – Patrick

+1

Bunu yapmak için araçlar vardır, ör. Squish (froglogic'ten). Bir keresinde böyle bir şeyi koddan olaylar göndererek yapmaya çalıştım, ama acı içinde sona erdi. Bazen * bazen başım ağrıyor. – Ivo

+0

http://stackoverflow.com/questions/21606125/qt-event-loop-and-unit-testing/22951970#22951970 –

cevap

2

Kolay cevap: Hayır.

ancak bunu yapmak için araçlar vardır. Burada http://qt.gitorious.org/+qa-tools/qt-labs/qa-tools-qtuitest .. ve TDriver: Ivo "yerli" test burada bulabilirsiniz QtUiTest denilen Uygulama ayrıca, orada Squish söz http://gitorious.org/tdriver

+0

Squish benzer bir yazılım var ama ücretsizdir? – Owen

+0

Ne kadar "serbest" istiyorsun? Yukarıdaki her iki araç da doğrudan kaynak kodu barındırma sitelerine bağlanır.Muhtemelen benzerler mi, ama yine de aynı işi squish olarak yapıyorlar. – rasjani

0

Ben ne öneriyorsunuz unit testing ancak system testing olmadığını iddia ediyorum. Bir GUI uygulamasının sistem seviyesi testleri için kesinlikle bir yer vardır, ancak bir birim testinden ağır bir arka plandan geliyorsanız tam program testinin farklılıklarını ve sınırlarını anlamak zorundasınız.

Bu, froglogic'in Squish'u gerçekten çok beğendim. Bu düzgün bir dizi özellik vardır:

  • doğrudan Qt nesneleri erişir ve böylece piksel tabanlı eylemler
    • az ihtiyaç Patrick olarak, bu özellikle neredeyse her GUI test aracı ile sorun genellikle yoktur yorumlarda orijinal soruya değinilmiştir.
  • Size (yaptığımız :))
  • Testleri (veya tcl veya javascript vs.) Python komut dosyası
  • Testler özel sürümü varsa can, Qt kütüphanesine bağlı olabilir
  • fare/klavye eylemlerine göre kaydedilmelidir.
    • Bu sınamalar bile betik dilinizde bulunur, böylece kolayca yeniden oluşturulabilir veya genişletilebilirler.
  • Çeşitli doğrulama seçenekleri vardır.
  • Mac, Linux ve Windows işletim sistemlerinde çalışır (ve sanırım iOS)
  • İstemci/sunucu modunda çalışabilir, böylece tek bir başlatma noktasından (veya yapınızdan) çeşitli makineler üzerinde testlere başlayabilirsiniz. sistemi).
  • froglogic, list of what they think is cool da vardır.