Jaskinie Podróże Nurki Grafika Mizar Teksty Kulinaria Lemkov Namiary Mapa RSS English
Spelunka Trybików Teksty Testowanie YAC Software
  Wróć

Spis

Charsets

Wykresy

DBExpress

Delphi

HTML

Intraweb

MSTest

PHP

Programowanie

R

Rhino Mocks

Software

Testowanie

Testowanie UI

VB.NET

VCL

WPF

Testowanie
  • AssertWasCalled a wielokrotne wywołania metod
    AssertWasCalled pozwalają sprawdzić, czy dana metoda została wywołana podczas testu. W dotychczasowych testach sprawdzane były pojedyncze wywołania; takie testy jednak nie przejdą jeżeli metoda wywoływana jest w trakcie testu wiele razy (z tymi samymi wartościami parametrów). AssertWasCalled pozwala zdefiniować dodatkowe parametry obsługujące tę sytuację.

  • AssertWas[Not]Called a właściwości obiektów
    AssertWasCalled i AssertWasNotCalled pozwalają sprawdzić, czy dana metoda obiektu została wywołana podczas testu (czy też nie). Sprawdzanie dostępu do właściwości (properties) obiektów zależy od ich deklaracji: czy są tylko do odczytu (ReadOnly), tylko do zapisu (WriteOnly), czy też do odczytu i zapisu.

  • AssertWasNotCalled w Rhino Mocks
    AssertWasCalled pozwala sprawdzić, czy dana metoda została podczas testu wywołana. AssertWasNotCalled pozwala sprawdzić rzecz odwrotną: że dana metoda nie została wywołana podczas testu.

  • Visual Studio - przenoszenie testów UI do nowego / innego projektu skutkuje wyjątkami null reference
    Właśnie co przeniosłeś testy UI (coded UI tests), z wszystkimi niezbędnymi plikami źródłowymi i odwołaniami do modułów, do nowego lub innego projektu (projektu, w którym jeszcze nie było testów UI). I po uruchomieniu testu otrzymujesz błędy null reference?
    No cóż, może ten drobiazg z obsługi Visual Studio Ci pomoże.

  • PrivateObject a parametry Out/ByRef
    Ktoś zadał interesujące pytanie do poprzedniego tekstu na temat PrivateObject: Co z testowaniem prywatnych/chronionych metod z parametrami typu Out lub ByRef?

  • PrivateObject, WithEvents i uogólnienia
    W poprzednich tekstach na temat PrivateObject (tutaj, here, oraz tutaj) wszystkie przykłady oparte były na prostych, w miarę, typach, bez uogólnień (w sensie generics). Co więcej, przykłady z ostatniego tekstu były może trochę zbyt teoretyczne - przynajmniej osobiście nie miałem nigdy potrzeby odwoływania się do prywatnych składowych w klasach bazowych... chyba. Jednakże, opisane tam rozwiązanie może okazać się przydatne w jednym konkretnym scenariuszu - odwoływanie się do pól chronionych, zadeklarowanych WithEvents w uogólnionej klasie bazowej.

  • Dostęp do składowych prywatnych klas bazowych
    W poprzednim tekście na temat PrivateObject i PrivateType sprawdzaliśmy, jak korzystać z klasy PrivateObject aby uzyskać dostęp do składowych prywatnych i chronionych testowanego obiektu. Czasami może się okazać, że konieczny jest nawet dostęp do składowych prywatnych klasy bazowej. Nadal można korzystać z klasy PrivateObject - trzeba tylko do konstruktora przekazać dodatkowy parametr typu PrivateType.

  • PrivateObject a WithEvents
    W poprzednim tekście na temat PrivateObject opisałem jak, w zautomatyzowanych testach, uzyskać dostęp do składowych prywatnych i chronionych. Jedne mały drobiazg - dostęp do pól zadeklarowanych jako WithEvents.

  • Dostęp do składowych prywatnych i chronionych - PrivateObject i PrivateType
    Potrzebujesz dostępu do prywatnych / chronionych składowych obiektu kodując testy modułów? Czas na PrivateObject i PrivateType.

  • VS - Test Run Error - "COM object that has been separated from its underlying RCW cannot be used"
    Dostajesz błąd "COM object that has been separated from its underlying RCW cannot be used" podczas uruchamiania testów w Visual Studio? Jeżeli to dlatego, że w testach otwierane są okna WPF, to rozwiązanie może okazać się całkiem proste...

  • Pobieranie kontrolki typu TreeViewItem dla elementów TreeView WPF
    Przy testowaniu kontrolki użytkownika (UserControl) zawierającej drzewo (TreeView) chciałem zasymulować kliknięcia myszą na elementach tegoż drzewa. Okazuje się jednak, że nie jest takie proste dobranie się do kontrolki, która reprezentuje element drzewa (I do której chciałem wysłać odpowiednie zdarzenie)...

  • Output w testach MSTest (VS 2010)
    Nie możesz znaleźć wydruków kontrolnych z instrukcji Console / Debug / Trace .WriteLine podczas wykonywania testów w VS 2010? Ten krótki tekst pokazuje co gdzie idzie.

  • Zautomatyzowane testy WPF a "Invalid URI: Invalid port specified."
    Jeżeli, przy uruchamianiu testów, odwołujesz się do zasobów za pomocą adresów URI typu pack://application: (niezależnie od tego, czy to odwołanie jest w kodzie testu czy też w kodzie samej aplikacji) pewnie natkniesz się na wyjątek "System.UriFormatException: Invalid URI: Invalid port specified." Można na ten temat znaleźć trochę informacji na sieci, ale dwa najłatwiejsze rozwiązania nie są tak łatwe do namierzenia (są, tyle że gdzieś w środku przydługich dyskusji). Tutaj, pokrótce przedstawiam sam problem nieco dokładniej, opis rozwiązań, które zapewne Ci nie pomogą (a przynajmniej nie pomogły mi) i dwa proste i szybkie rozwiązania. Jeżeli zależy Ci tylko na nich, po prostu przejdź na koniec tekstu.

  • Kontrola powiadamiania o zmianach wartości
    Też nie lubisz braku kontroli typów w powiadamianiu o zmianach wartości (INotifyPropertyChanged) w programach VB.NET? Sześć linii może pomóc w upilnowaniu kodu przed błędnym kodem w implementacji tego interfejsu.

  • Weryfikacja "wiszących" procedur obsługi zdarzeń w formach Delphi
    Lubię Visual Form Inheritance (VFI) w Delphi, ale wsparcie tego rozwiązania ze strony narzędzia mogłoby być znacznie lepsze. Jedna z rzeczy, które lub się "rozjechać" podczas pracy na hierarchiach formularzy jest mapowanie między zdarzeniami a procedurami obsługi zdarzeń. Przedstawiam tutaj krótką procedurę pozwalającą sprawdzić niespójności w tej materii.

  • AssertWasCalled w Rhino Mocks (w VB.NET)
    Początki używania jakiejkolwiek większej biblioteki mogą być niełatwe. Jednak najlepszym sposobem na wdrożenie się jest po prostu ropoczęcie korzystania z niej. A kolejne funkcje z czasem staną się jasne. Tylko gdzie zacząć?

    W tym tekście znajdziesz łagodne wprowadzenie do Rhino Mocks pokazujące najprostszy scenariusz korzystania z biblioteki - tworzenie atrap obiektów (stubs) na potrzeby testowania.

  • Pierwsze kroki z Rhino Mocks (w VB.NET)
    Początki używania jakiejkolwiek większej biblioteki mogą być niełatwe. Jednak najlepszym sposobem na wdrożenie się jest po prostu rozpoczęcie korzystania z niej. A kolejne funkcje z czasem staną się jasne. Tylko gdzie zacząć?

    W tym tekście znajdziesz łagodne wprowadzenie do Rhino Mocks pokazujące najprostszy scenariusz korzystania z biblioteki - tworzenie atrap obiektów (stubs) na potrzeby testowania.

  • VS - testy w... toku
    Problemy z uruchamianiem unit testów pod Visual Studio 2008? Testy pozostają w stanie "pending" w nieskończoność? Może ten hotfix Wam pomoże...

  • Zautomatyzowane testowanie GUI
    Miałeś kiedyś problemy z testowaniem aplikacji GUI za pomocą zewnętrznych programów? A może po prostu chcesz przetestować jedno okno/formę bez konieczności uruchamiania całego programu? Zacznij pisać unit testy dla GUI swoich aplikacji - są równie proste co standardowe unit testy.

  • Zautomatyzowane testowanie GUI w maszynie wirtualnej
    Testowanie GUI, gdy wykonywane na maszynie deweloperskiej, blokuje prace ze względu na niemożność korzystania w tym czasie z klawiatury czy myszy. Skorzystaj tedy z maszyny wirtualnej i pozwól działać testom tam, a sam spokojnie kontynuuj swoją pracę.

  • Automatyczne testowanie formularzy okien
    Masz już dość ciągłego weryfikowania kolejności kontrolek i poprawności skrótów na formularzach okien? Ile razu wysłałeś już do klienta program, w którym skróty są zduplikowane, w którym FocusControl w etykietach nie jest poprawnie ustawione, w którym nie ma domyślnych przycisków w oknach dialogowych, itp.? Ten tekst opisuje pewne podejście do automatycznego testowania formularzy okien (a także i innych kontrolek, np. ramek). Podejście, które, przynajmniej w moim przypadku, każdego tygodnia oszczędza kilka godzin na testowaniu.

  • Wykrywanie traconej pamięci a DUnit
    Znacznie łatwiej naprawia się błędy kodowania, gdy te zostaną wykryte w fazie testów modułów niż gdy je wykryjemy podczas dalszych faz cyklu tworzenia oprogramowania. Nie inaczej jest z przeciekaniem pamięci, szczególnie, że błąd ten może objawiać się nieregularnie, a prześledzenie problemu do źródła może być trudne i czasochłonne.

    Gdy korzystamy z Delphi, DUnit jest rozwiązaniem, które ułatwia wykrywanie przecieków dzięki odpowiedniej opcji programu (a dla innych języków istnieją rozwiązania podobne). Jednakże, przy takim podejściu należy zwrócić uwagę na kilka niuansów, z których jeden opisany jest w niniejszym tekście.
Góra