Biz işte burada yaklaşık 6 ay için Flex kullanıyorum ve ben özel bileşenler içeren FlexUnit testlerin ilk toplu halde desen bu tür izleme eğiliminde olacağını ortaya çıkardı: TemeldeFlexUnit bileşen test kalıpları: addAsync'i kullanın veya manuel olarak başlatılıyor mu?
import mx.core.Application;
import mx.events.FlexEvent;
import flexunit.framework.TestCase;
public class CustomComponentTest extends TestCase {
private var component:CustomComponent;
public function testSomeAspect() : void {
component = new CustomComponent();
// set some properties...
component.addEventListener(FlexEvent.CREATION_COMPLETE,
addAsync(verifySomeAspect, 5000));
component.height = 0;
component.width = 0;
Application.application.addChild(component);
}
public function verifySomeAspect(event:FlexEvent) : void {
// Assert some things about component...
}
override public function tearDown() : void {
try {
if (component) {
Application.application.removeChild(component);
component = null;
}
} catch (e:Error) {
// ok to ignore
}
}
yapmanız gerekenler Hakkında herhangi bir şeyi güvenilir bir şekilde doğrulayabilmeniz için bileşenin tam olarak başlatıldığından emin olun ve Flex'te bu, görüntüleme listesine eklendikten sonra senkronize olmayan bir şekilde gerçekleşir. Bu gerçekleştiğinde bildirim almak için bir geri arama (FlexUnit addAsync işlevini kullanarak) kurmanız gerekir.
import flexunit.framework.TestCase;
public class CustomComponentTest extends TestCase {
public function testSomeAspect() : void {
var component:CustomComponent = new CustomComponent();
component.initialize();
// set some properties...
component.validateProperties();
// Assert some things about component...
}
Bu takip etmek çok daha kolaydır:
Son zamanlarda ben sadece manuel yani şimdi benim testleri daha böyle bakmak eğilimindedir, çalışma zamanı gerekli yerlerde sana çağırır yöntemler aradım ama her iki şekilde de hile yaptığımı sanıyordum. İlk vaka, geçerli Uygulamaya (ünite test koşucusu kabuğu uygulaması olacak) çarparak, ikincisi “gerçek” bir ortam değildir.
Diğer insanların bu gibi durumları nasıl ele alacağını merak ediyordum?