Na tak postawione pytanie aż chciałoby się odpowiedzieć: "testować wszystko, you fool!". Życie uczy jednak, że takie podejście jest bardzo niepraktyczne i na dłuższą metę nie ma sensu. Dążenie do pokrycia 100% kodu mija się z celem i jest po prostu stratą czasu. O powodach pisania testów pisałem na początku tego cyklu. Są jednak miejsca, w których koszt napisania testu jest bardzo duży, a jego wartość - znikoma. Zacznijmy więc od odpowiedzi na trudniejsze pytanie. Czego nie testować?
Strona głównaUżytkownik
paduda | użytkownik
Autor: [ten post jest częścią mojego minicyklu o testach, pełna lista postów: tutaj] Po dość długiej przerwie wracam do tematu testów jednostkowych. Kombek zainicjuję krótkim zahaczeniem o mocki, które opisałem w poprzednim poście cyklu. Poruszyć chcę dzisiaj dwie kwestie. Kwestia 1: terminologia Niedawno na blogu Piotra Zielińskiego pojawił się post opisujący różnice pomiędzy terminami określającymi to co ja rozumiem przez "mock". Przypomniało mi to czasy, gdy starałem się zgłębiać definicje skrywając...
Architektura 4775 dni, 9 godzin, 21 minut temu 186 źrodło rozwiń
W miarę przeglądania dokumentacji wyławiam z niej różne mniej pierwszoplanowe informacje. Powstają z tego robocze zapiski, które myślę mogę tutaj również zamieszczać. WinJS.xhr At install time, the user sees which capabilities an app asks for, so the app is installed only if the user agrees for it to access those resources. Windows.Web.Syndication.SyndicationClient To use WinJS templates, we must reference the bulk of the WinJS CSS and JavaScript files. These files provide the styles and behavior for t...
Często musimy implementować interfejs INotifyPropertyChanged. Szczególnie w przypadku wykorzystania wzorca MVVM oraz WPF. Najczęściej programiści wykorzystują podstawową implementację i przekazują nazwę parametru jako czysty string np:if(PropertyChanged!=null) { PropertyChanged(this,new PropertyChangedEventArgs("propName")); } Wszystko działa bardzo dobrze, dopóki nie zmienimy nazwy właściwości. Przede wszystkim należy wtedy pamiętać o zaktualizowaniu wszystkich wywołań ProperyChanged. Nie możemy po...
autor: Hawkeye .NET Runtime Object Editor to program, który znalazłem w sieci dobre dwa lata temu. W tym czasie wielokrotnie mi się przysłużył, a jest przydatny w szczególności tym, którzy pracują z technologią Windows Forms. W skrócie, pozwala modyfikować UI działającej aplikacji. Jego użycie jest proste. Wskazujemy myszką interesujący nas fragment aplikacji, a Hawkeye oznacza wybraną kontrolkę przy pomocy czerwonej ramki i wyświetla listę właściwości i prywatnych pól klasy, których wartości może...
autor: Chciałbym zapoczątkować nową świecką tradycję na moim blogu. Pokusiłem się o nagranie 2 minutowego filmiku na którym prezentuje jak uruchamiać jedno zapytanie na wielu serwerach przy użyciu SQL Server Management Studio. Moim celem jest dzielenie się prostymi, aczkolwiek mam nadzieję, że przydatnymi "pomysłami" w jak najkrótszym czasie antenowym. Poniżej przykładowy filmik. Zachęcam do poświęcenia 140 sekund na obejżenie tego filmiku i oczywiście proszę o komentarze na temat takiej formy knowledge ...
Bazy danych i XML 4784 dni, 11 godzin, 38 minut temu 216 źrodło rozwiń
Autor: Nie tak dawno przedstawiłem na spotkaniu Łódzkiej grupy profesjonalistów IT & .NET prezentację poświęconą „Wprowadzenie do Reactive Extensions (RX) dla .NET” (patrz informacja: Zapraszam na prezentację: "Wstęp do Reactive Extensions dla .NET (RX)"). Tych, którzy chcieliby się zapoznać z prezentacją lub kodem źródłowym, który powstał podczas prezentacji, zapraszam do obejrzenia mojej prezentacji umieszczonej na portalu SlideShare....
Programowanie rozproszone 4792 dni, 19 godzin, 27 minut temu 237 źrodło rozwiń
Dawno dawno temu było…Reflector i długo długo nic (de facto na początku był jest ildasm ale nie o nim dziś). Na szczęście pewnego lutowego dnia pojawiła się informacja, że już niedługo nie będzie on dostępny za darmo i się zaczęło. Flame’y, groźby i krzyki :). Stało się też sporo dobrego bo o to na rynku pojawiły się alternatywy. Ilspy, dotPeek oraz JustDecompile. Przyjrzyjmy się im z bliska i zobaczmy co mają do zaoferowania. Reflector - umarł król...Reflector to zdecydowanie n...
autor: Czasami się zdarza, że ktoś wysyła do mnie maila z zapytaniem o radę. Rzadziej się zdarza, że ktoś wysyła maila i podaje nie istniejący adres e-mail. Tak się zdarzyło teraz. 2h odpowiadania na maila by się dowiedzieć iż sorry ale adres e-mail nie istnieje. Tak więc by moja praca nie poszła na marne, zamieszczam tutaj zarówno pytania jak i odpowiedzi także zachęcam do komentowania :)
autor: Jestem w trakcie tworzenia aplikacji na WP7 wykorzystującej mapy Bing do zaprezentowania trasy zbudowanej w oparciu o współrzędne pobrane z GPS. Niby nic wielkiego, jednak w sieci nie udało mi się znaleźć żadnego sensownego i działającego przykładu, co było bezpośrednim przyczynkiem do powstania tego wpisu. Po przekopaniu się przez dokumentację, stworzyłem prosty kod, wyświetlający na mapie “wężyka”, obrazującego trasę między zadanymi współrzędnymi. W XAML-u za dużo nie zrobimy. Cała magia dzieje ...
autor: Jakiś czas temu pracując z IntelliTrace próbowałem zdefiniować zdarzenie diagnostyczne dla pewnej metody. Dla ustalenia uwagi niech jej sygnatura wygląda tak, jak poniżej. string Flip(string s) Moim celem było, aby opis zdarzenia zawierał wynik zwrócony przez metodę oraz wartość argumentu s. Inaczej mówiąc, aby w oknie IntelliTrace Events View w Visual Studio 2010 zdarzenie zarejestowane dla wywołania metody z argumentem s="Hello" i wynikiem "olleH" wyglądalo tak: "olleH" Flip("Hello") O defin...
autor: Obudziłem się, jak zawsze 1 września, z lekkim niepokojem. Ale wyglądam przez okno i czołgów nie widzę, więc zakładam, że ponownie nam się upiekło. I można zacząć na poważne myśleć o październiku.
autor: W dwóch poprzednich artykułach na temat zarządzanych komponentów COM+ pisałem, że instaluje się je przy użyciu narzędzia regsvcs.exe. Tak oczywiście jest, ale ostatnio ku swojemu zaskoczeniu zauważyłem, że jest to opcjonalne. Jeśli nie zainstalujemy takiego komponentu z poziomu konsoli (np.: regsvcs.exe MyComponent.dll) to zostanie on zainstalowany automatycznie przy pierwszym wywołaniu jego konstruktora. [assembly: ApplicationName("MyComponent")] [assembly: ApplicationActivation(...
Nowy mobilny system operacyjny Microsoftu – Windows Phone, ujrzał światło dzienne pod koniec 2010 roku. Mimo iż jest dobrze przemyślany i zaprojektowany, nie podbił serc użytkowników, co bezpośrednio przełożyło się na kiepskie wyniki sprzedaży. Rok po wydaniu WP7, Microsoft szykuje się do premiery pierwszej dużej aktualizacji systemu Windows Phone, mającej odbyć się we wrześniu (pierwsze urządzenia z Mango są już dostępne na rynku japońskim). Do Polski Mango prawdopodobnie zawita w październiku. Mimo bra...
Mobile development 4861 dni, 14 godzin, 55 minut temu 165 źrodło rozwiń
Czasami potrzeba dodać atrybuty do właściwości/metod klasy, która została stworzona automatycznie przez jakiś designer (na przykład przez ORM). Modyfikowanie klasy bezpośrednio nie ma sensu, ponieważ może ona zostać nadpisana i nasze zmiany zostaną niestety utracone. Atrybuty takie można określić w oddzielnym pliku. Czyli na przykład zamiast:using System; using System.ComponentModel.DataAnnotations; using System.Web.Mvc; public class Product { [HiddenInput(DisplayValue=false)] public i...
autor: Po powrocie z urlopu wgrałem na telefon system Mango 7712, o którym w ostatnim poście wspominałem. Mimo dość długiej książeczki instrukcji i wielu ostrzeżeń w niej zawartych wszystko poszło według planu. Na całość procesu złożyło się: instalacja narzędzi Beta 2 Refresh i specjalnej wersji Zune, pobranie najnowszych poprawek, zrobienie backupu urządzenia oraz instalacja 3 aktualizacji (pierwsza dla umożliwienia aktualizacji, druga - do wersji 7043, trzecia - do wersji 7712). Jedyna rzecz, o której ...
Mobile development 4862 dni, 19 godzin, 40 minut temu 36 źrodło rozwiń
autor: Windows Phone wciąż do przodu! Dziś podzielę się tym, co zwróciło moją uwagę w najnowszym toolkicie. Następny post poświęcę najnowszemu SDK. Kierując się kolejnością chronologiczną zacznę od Windows Phone Toolkit – August 2011 (SDK 7.1). Dostajemy wraz z nim wiele nowych fajnych kontrolek i udogodnień, których nieraz po prostu brakowało. Najlepiej odpalić je i zobaczyć w działaniu. Moją uwagę zwróciły w szczególności następujące elementy: MultiselectList Wybór wielu elementów z listy, zachowanie ...
Mobile development 4862 dni, 19 godzin, 40 minut temu 45 źrodło rozwiń
autor: Napiszę teraz trochę o nowym Windows Phone SDK 7.1 RC. Zacznę od dwóch elementów, które na pewno występowały już w niepublicznym Beta 2 Refresh. Są to: Screenshot tool Oprócz narzędzia do screenshotów z Windows 7 możemy teraz używać dedykowanego narzędzia dostarczanego z emulatorem. Marketplace Test Kit Zbiór testów, którymi są poddawane aplikacje wrzucane na Marketplace. Dzięki temu znacznie spada prawdopodobieństwo “niespodzianki” po wysłaniu aplikacji, developer może poddać weryfikacji swoją ...
autor:W tym poście wrócę do tematu aplikacji modelu COM+ napisanych w kodzie zarządzanym, który to poruszyłem w poprzednim artykule. Tym razem chciałbym zwrócić uwagę na problem wersjonowanie takich komponentów. Upraszczając, chodzi o różnicę pomiędzy katalogiem, z jakiego komponent został zainstalowany w systemie, a katalogiem, w którym znajduje się biblioteka z komponentem jakiej używa dana aplikacja. W szczególności mogą to być inne katalogi np.: c:\Install oraz c:\bin. W takim ...
autor: We wpisie chciałem zwrócić uwagę na ważną sprawę, która nie jest taka oczywista: wywołanie metody FormsAuthentication.RedirectToLoginPage NIE kończy przetwarzania danej strony (informacja o tym została dodana do dokumentacji dopiero w wersji 3.5 w maju 2010)! Załóżmy, że użytkownik nie generuje ruchu na stronie przez jakiś czas, wystawiony ticket wygasa. Następnie np. naciska na submit buttona lub sortuje grida (triggeruje postback) – poniższy handler (i wszystko inne – walidacja, eventy) wykona s...