Niniejszy plik jest materiałem reklamowym BNS IT s.c. i pozostaje własnością intelektualną BNS IT s.c.. Może być rozpowszechniany tylko w takiej postaci w jakiej jest. Używanie zawartych tu treści i form bez zaznaczenia autorstwa i pochodzenia pliku, zwłaszcza na użytek prowadzenia szkoleń, wykładów i wystąpień publicznych, jest zabronione.
Firma doradcza Universum udostępniła właśnie najnowszy ranking Idealny Pracodawca 2014, oparty na opinii ponad 23 500 studentów. W trakcie tegorocznego badania studenci dokonali ponad 70 tysięcy indywidualnych ocen pracodawców.
Firma doradcza Universum udostępniła właśnie najnowszy ranking Idealny Pracodawca 2014, oparty na opinii ponad 23 500 studentów. W trakcie tegorocznego badania studenci dokonali ponad 70 tysięcy indywidualnych ocen pracodawców.
Dobry system musi być przetestowany pod względem wydajnościowym. Takie testy są zupełnie inne niż testy funkcjonalne: zamiast binarnego rezultatu (pass, fail), mamy ogromne ilości danych do zebrania, zaprezentowania i zinterpretowania. Podczas wystąpienie prelegent omówi cały cykl testów wydajnościowych: od przygotowania warunków testu, środowisk i danych testowych, poprzez przeprowadzenie testów, zebranie danych, ich prezentację i interpretacje, aż po przeprowadzenie procesów decyzyjnych wynikających z danych.
JDD 2016 - Wojciech Oczkowski - Testowanie Wydajnosci Za Pomoca Narzedzia JMHPROIDEA
W prezentacji pokażę jak wykorzystać narzędzie JMH do budowy microbenchmarków testujących wydajność zadanych kawałków kodu. Nabyte umiejętności pozwolą słuchaczom sprawdzić wydajność wybranych fragmentów kodu bez niebezpieczeństwa popełnienia, typowych dla tego typu testowania, błędów związanych z np. wygrzewaniem maszyny wirtualnej czy działalnością garbage collectora.
4Developers 2015: Property-based testing w języku Scala - Paweł GrajewskiPROIDEA
Paweł Grajewski
Language: Polish
Techniki Test-driven development (TDD) oraz Behavior-driven development (BDD) są dziś powszechnie stosowaną metodą poprawy jakości wytwarzanego oprogramowania. Obie zakładają w swej konstrukcji budowę zestawu przypadków testowych, ale stworzenie poprawnego i kompletnego zestawu takich przypadków jest nie lada sztuką. Często nie jesteśmy w stanie przewidzieć wszystkich sytuacji brzegowych, w skutek czego nie możemy być pewni na ile w rzeczywistości poprawny jest kod naszej aplikacji
Z pomocą może przyjść nam technika property-based testing, która w miejsce testowania poprawności działania systemu dla skończonego zbioru przypadków testowych wprowadza koncepcję “badania jego właściwości”. Idea ta zrodziła się już wiele lat temu, a dzisiaj znowu wraca do łask wraz ze wzrostem popularności funkcyjnych języków programowania. Zaufało jej już wiele dużych, złożonych projektów m.in. projekt kompilatora języka Scala oraz framework Akka. Prawidłowo zastosowana jest w stanie zapewnić wymierne korzyści - zwiększyć pokrycie kodu testami, ale przede wszystkim uchronić nas przed wieloma typowymi niedopatrzeniami.
Prezentacja przybliży koncepcję property-based testing oraz zademonstruje tę technikę na przykładach.
Niniejszy plik jest materiałem reklamowym BNS IT s.c. i pozostaje własnością intelektualną BNS IT s.c.. Może być rozpowszechniany tylko w takiej postaci w jakiej jest. Używanie zawartych tu treści i form bez zaznaczenia autorstwa i pochodzenia pliku, zwłaszcza na użytek prowadzenia szkoleń, wykładów i wystąpień publicznych, jest zabronione.
Testowanie aplikacji to temat najczęściej pomijany przez programistów. Testowanie nie jest tak pasjonujące jak tworzenie programów czy poznawanie nowych narzędzi. Jest jednak niezbędne. Prawidłowo przeprowadzony proces testowania może znacznie poprawić wydajność, podnieść jakość projektu i kodu, zmniejszyć obciążenia wynikające z konserwacji kodu i pomóc lepiej zaspokoić wymagania klientów, współpracowników i kierownictwa. W powszechnie uznanych metodykach projektowych testowanie, szczególnie za pomocą testów automatycznych, jest niezwykle istotnym procesem.
Książka "Perl. Testowanie. Zapiski programisty" to praktyczny przewodnik dla programistów Perla, którzy chcą poprawić jakość i wydajność tworzonych przez siebie programów. Opisuje metody tworzenia testów automatycznych, stosowania ich i interpretowania ich wyników. Przedstawia sposoby testowania pojedynczych modułów, całych aplikacji, witryn WWW, baz danych, a nawet programów stworzonych w innych językach programowania. Zawiera również informacje o tym, jak dostosować podstawowe narzędzia testujące do własnego środowiska i projektów.
* Instalowanie modułów testujących
* Pisanie testów
* Automatyzacja uruchamiania testów
* Analiza wyników testów
* Dystrybucja testów
* Testy jednostkowe
* Testowanie baz danych
* Testowanie witryn WWW i kodu HTML
Dzięki wiadomościom zawartym w tej książce można zredukować długość cyklu tworzenia oprogramowania i zdecydowanie ułatwić konserwację gotowych systemów.
W prezentacji przedstawię rozwiązanie frameworka do automatyzacji testów, które zaprojektowałem, aby zapewnić wydajną i tanią w utrzymaniu automatyzację testów dla aplikacji webowej.
Największym wyzwaniem było to, że aplikacja składała się z wielu modułów, z których każdy był tworzony, podobnie jak testy dla niego, przez inną firmę. Rozwiązanie oparte o repozytorium binariów pozwala na szybkie dzielenie się wytworzonym kodem testów aplikacji pomiędzy wszystkimi
zespołami, co przyspiesza i obniża koszt utrzymania testów automatycznych, oraz umożliwia szybkie pisanie testów przechodzących przez wiele modułów aplikacji.
4Developers 2015: Przejrzysty i testowalny kod na Androidzie? Spróbujmy z Cle...PROIDEA
Michał Charmas
Language: Polish
Pisanie dobrego oprogramowania na platformę Android jest trudnym zadaniem.
Jednym z dużych problemów, zwłaszcza w przypadku sporych aplikacji, może być podział
logiki aplikacji tak, aby nasze Activity czy Fragmenty nie były nią przeładowane
oraz aplikacja była podatna na testowanie jednostkowe. Szukając pomysłu na
architekturę aplikacji, która będzie dobrze się skalowała wraz z rozwojem projektu,
natknąłem się na Clean Architecture zaproponowaną przez Boba C. Martina.
Podczas prezentacji zobaczymy czy i jak CA sprawdza się w przypadku
aplikacji mobilnych na Androida i na co pozwala jej zastosowanie. Oczywiście nie pominiemy
takich kluczowych kwestii jak pogodzenie tego wszystkiego z wszechobecną na Androidzie
asynchronicznością.
“Akademie programistów” (red: zbieżność nazw całkowicie przypadkowa) powstają jak grzyby po deszczu. Prawdopodobnie otrzymałeś/aś już kilka ofert poprowadzenia szkolenia lub warsztatu w ramach takiego przedsięwzięcia. Być może masz ochotę sprawdzić się w roli instruktora, ale się wahasz. W zasadzie znasz temat szkolenia, pracujesz w tej technologii od dłuższego czasu, ale nie wiesz jak zaplanować kilkudniowe szkolenie, nie wiesz ile powinno być ćwiczeń a ile wykładów,stresujesz się nieco na myśl o pracy z grupą szkoleniową, no i nie masz absolutnie zielonego pojęcia jakiej stawki za to zażądać.
“Revert” to ostatnia faza rozpaczliwego kodowania pomysłu, który na początku wydawał się najgenialniejszym kawałkiem kodu, jaki kiedykolwiek powstał. Po zakończeniu mojej prezentacji z kilkoma konkretnymi technikami, które pomogą Ci “dokodować” swoje pomysły do końca. Przyjrzymy się między innymi: wyodrębnianiu i dekomponowaniu zadań programistycznych, planowaniu pracy, poszukiwaniu błędów w kodzie i umiejętności skupienia się.
Dobry system musi być przetestowany pod względem wydajnościowym. Takie testy są zupełnie inne niż testy funkcjonalne: zamiast binarnego rezultatu (pass, fail), mamy ogromne ilości danych do zebrania, zaprezentowania i zinterpretowania. Podczas wystąpienie prelegent omówi cały cykl testów wydajnościowych: od przygotowania warunków testu, środowisk i danych testowych, poprzez przeprowadzenie testów, zebranie danych, ich prezentację i interpretacje, aż po przeprowadzenie procesów decyzyjnych wynikających z danych.
JDD 2016 - Wojciech Oczkowski - Testowanie Wydajnosci Za Pomoca Narzedzia JMHPROIDEA
W prezentacji pokażę jak wykorzystać narzędzie JMH do budowy microbenchmarków testujących wydajność zadanych kawałków kodu. Nabyte umiejętności pozwolą słuchaczom sprawdzić wydajność wybranych fragmentów kodu bez niebezpieczeństwa popełnienia, typowych dla tego typu testowania, błędów związanych z np. wygrzewaniem maszyny wirtualnej czy działalnością garbage collectora.
4Developers 2015: Property-based testing w języku Scala - Paweł GrajewskiPROIDEA
Paweł Grajewski
Language: Polish
Techniki Test-driven development (TDD) oraz Behavior-driven development (BDD) są dziś powszechnie stosowaną metodą poprawy jakości wytwarzanego oprogramowania. Obie zakładają w swej konstrukcji budowę zestawu przypadków testowych, ale stworzenie poprawnego i kompletnego zestawu takich przypadków jest nie lada sztuką. Często nie jesteśmy w stanie przewidzieć wszystkich sytuacji brzegowych, w skutek czego nie możemy być pewni na ile w rzeczywistości poprawny jest kod naszej aplikacji
Z pomocą może przyjść nam technika property-based testing, która w miejsce testowania poprawności działania systemu dla skończonego zbioru przypadków testowych wprowadza koncepcję “badania jego właściwości”. Idea ta zrodziła się już wiele lat temu, a dzisiaj znowu wraca do łask wraz ze wzrostem popularności funkcyjnych języków programowania. Zaufało jej już wiele dużych, złożonych projektów m.in. projekt kompilatora języka Scala oraz framework Akka. Prawidłowo zastosowana jest w stanie zapewnić wymierne korzyści - zwiększyć pokrycie kodu testami, ale przede wszystkim uchronić nas przed wieloma typowymi niedopatrzeniami.
Prezentacja przybliży koncepcję property-based testing oraz zademonstruje tę technikę na przykładach.
Niniejszy plik jest materiałem reklamowym BNS IT s.c. i pozostaje własnością intelektualną BNS IT s.c.. Może być rozpowszechniany tylko w takiej postaci w jakiej jest. Używanie zawartych tu treści i form bez zaznaczenia autorstwa i pochodzenia pliku, zwłaszcza na użytek prowadzenia szkoleń, wykładów i wystąpień publicznych, jest zabronione.
Testowanie aplikacji to temat najczęściej pomijany przez programistów. Testowanie nie jest tak pasjonujące jak tworzenie programów czy poznawanie nowych narzędzi. Jest jednak niezbędne. Prawidłowo przeprowadzony proces testowania może znacznie poprawić wydajność, podnieść jakość projektu i kodu, zmniejszyć obciążenia wynikające z konserwacji kodu i pomóc lepiej zaspokoić wymagania klientów, współpracowników i kierownictwa. W powszechnie uznanych metodykach projektowych testowanie, szczególnie za pomocą testów automatycznych, jest niezwykle istotnym procesem.
Książka "Perl. Testowanie. Zapiski programisty" to praktyczny przewodnik dla programistów Perla, którzy chcą poprawić jakość i wydajność tworzonych przez siebie programów. Opisuje metody tworzenia testów automatycznych, stosowania ich i interpretowania ich wyników. Przedstawia sposoby testowania pojedynczych modułów, całych aplikacji, witryn WWW, baz danych, a nawet programów stworzonych w innych językach programowania. Zawiera również informacje o tym, jak dostosować podstawowe narzędzia testujące do własnego środowiska i projektów.
* Instalowanie modułów testujących
* Pisanie testów
* Automatyzacja uruchamiania testów
* Analiza wyników testów
* Dystrybucja testów
* Testy jednostkowe
* Testowanie baz danych
* Testowanie witryn WWW i kodu HTML
Dzięki wiadomościom zawartym w tej książce można zredukować długość cyklu tworzenia oprogramowania i zdecydowanie ułatwić konserwację gotowych systemów.
W prezentacji przedstawię rozwiązanie frameworka do automatyzacji testów, które zaprojektowałem, aby zapewnić wydajną i tanią w utrzymaniu automatyzację testów dla aplikacji webowej.
Największym wyzwaniem było to, że aplikacja składała się z wielu modułów, z których każdy był tworzony, podobnie jak testy dla niego, przez inną firmę. Rozwiązanie oparte o repozytorium binariów pozwala na szybkie dzielenie się wytworzonym kodem testów aplikacji pomiędzy wszystkimi
zespołami, co przyspiesza i obniża koszt utrzymania testów automatycznych, oraz umożliwia szybkie pisanie testów przechodzących przez wiele modułów aplikacji.
4Developers 2015: Przejrzysty i testowalny kod na Androidzie? Spróbujmy z Cle...PROIDEA
Michał Charmas
Language: Polish
Pisanie dobrego oprogramowania na platformę Android jest trudnym zadaniem.
Jednym z dużych problemów, zwłaszcza w przypadku sporych aplikacji, może być podział
logiki aplikacji tak, aby nasze Activity czy Fragmenty nie były nią przeładowane
oraz aplikacja była podatna na testowanie jednostkowe. Szukając pomysłu na
architekturę aplikacji, która będzie dobrze się skalowała wraz z rozwojem projektu,
natknąłem się na Clean Architecture zaproponowaną przez Boba C. Martina.
Podczas prezentacji zobaczymy czy i jak CA sprawdza się w przypadku
aplikacji mobilnych na Androida i na co pozwala jej zastosowanie. Oczywiście nie pominiemy
takich kluczowych kwestii jak pogodzenie tego wszystkiego z wszechobecną na Androidzie
asynchronicznością.
“Akademie programistów” (red: zbieżność nazw całkowicie przypadkowa) powstają jak grzyby po deszczu. Prawdopodobnie otrzymałeś/aś już kilka ofert poprowadzenia szkolenia lub warsztatu w ramach takiego przedsięwzięcia. Być może masz ochotę sprawdzić się w roli instruktora, ale się wahasz. W zasadzie znasz temat szkolenia, pracujesz w tej technologii od dłuższego czasu, ale nie wiesz jak zaplanować kilkudniowe szkolenie, nie wiesz ile powinno być ćwiczeń a ile wykładów,stresujesz się nieco na myśl o pracy z grupą szkoleniową, no i nie masz absolutnie zielonego pojęcia jakiej stawki za to zażądać.
“Revert” to ostatnia faza rozpaczliwego kodowania pomysłu, który na początku wydawał się najgenialniejszym kawałkiem kodu, jaki kiedykolwiek powstał. Po zakończeniu mojej prezentacji z kilkoma konkretnymi technikami, które pomogą Ci “dokodować” swoje pomysły do końca. Przyjrzymy się między innymi: wyodrębnianiu i dekomponowaniu zadań programistycznych, planowaniu pracy, poszukiwaniu błędów w kodzie i umiejętności skupienia się.
Od codziennej higieny do strategicznej refaktoryzacjiMichał Bartyzel
• W jaki sposób już teraz możesz upiększyć swój kod?
• Jak refaktoryzować bez konieczności ukrywania tego w szacowaniach?
• Jak w ciągu 30 minut wyprostować najbardziej zagmatwany algorytm?
• W jaki sposób planować duże strategiczne refaktoryzacje?
• Jak w uporządkowany sposób przeprowadzać długotrwałe refaktoryzacje?
• Jak uniknąć niespójnej architektury w trakcie długotrwałej refaktoryzacji?
• Jak negocjować czas na refaktoryzację z Twoim managerem, PO czy klientem?
Każdy wie co to agile, każdy próbował Scruma. Nie każdemu jednak się to podoba i nie każdemu się udaje. W trakcie prezentacji chcę zaproponować Ci pewien eksperyment – zostawmy na chwilę kontekst IT i zmieńmy go na inny.
Opowiem o moich własnych wdrożeniach zwinnych podejść w zarządzaniu sprawami domowymi, finansach, wykańczaniu mieszkania i życiu jako takim.
Ten zabieg zmiany kontekstu posłuży nam do niezwykle ważnej rzeczy: do nazwania wartości stojących za agile oraz jego fundamentalnych zasad. Zobaczysz jak agile może zmienić z pozoru nudne czynności niesamowitą przygodę.
The document discusses agile principles like limiting work in progress, improving processes through visibility and measurement, and servant leadership. It also discusses using an empirical process to gain knowledge from experience for making decisions. Specific examples discussed include having two payrolls, a mortgage, car loan, and credit cards with no savings, and making conclusions about paying in cash and avoiding supermarkets to get out of debt.
Techniki, czyli przekształcenia refaktoryzacyjne pomagają transformować fragmenty kodu z jednej postaci w inną. Jednak duże refaktoryzacje to przede wszystkim przedsięwzięcie organizacyjne. Co warto refaktoryzować? Jak zidentyfikować kluczowe problemy? Kiedy nie podejmować działań? Czy w ogóle warto? Jakie heurystyki i strategie wysokopoziomowe możesz wykorzystać? Odpowiedzi na te pytania poznasz podczas prelekcji Strategiczna refaktoryzacja.
[Agile2014] Conversation Patterns for Software ProfessionalsMichał Bartyzel
We have created lots of tools which are intended to structure fuzzy or unclear business needs. We have created use cases, user stories, acceptance test and so forth.
Although the tools above were designed to improve collaboration with customers , we use them to hide ourselves from business people. Instead of talking to an individual we tend to complete the forms.
The issue motivated me to start working on Conversation Patterns for Software Professionals, which are techniques for having better conversations with stakeholders and drilling their real needs. The Patterns makes soft skills more technical guy-friendly and easier to apply.
Szybko czy dobrze. jak współpracować z biznesem i nie dać się zwieść pozornym...Michał Bartyzel
Jaki jest model współpracy między biznesem a IT w Twojej organizacji?
Który aspekt naszej relacji z biznesem generuje najwięcej problemów?
Jak zbudować koalicję na rzecz zmiany?
Jak długoterminowo zadbać o jakość współpracy z biznesem?
Dlaczego po wprowadzeniu zmian ludzie wciąż narzekają?
Od czego zacząć?
Prezentacja, którą przedstawiłem w trakcie konferencji 33rd Degree. Pamiętaj - nie chodzi tu o krytykę TDD, DDD, BDD itd. Chodzi o zachętę do samodzielnego myślenia.
Niniejszy plik jest materiałem reklamowym BNS IT s.c. i pozostaje własnością intelektualną BNS IT s.c.. Może być rozpowszechniany tylko w takiej postaci w jakiej jest. Używanie zawartych tu treści i form bez zaznaczenia autorstwa i pochodzenia pliku, zwłaszcza na użytek prowadzenia szkoleń, wykładów i wystąpień publicznych, jest zabronione.
1. Katalog szkoleń Harmonogram szkoleń Zadaj pytanie
Moduł 3
Niniejszy plik jest materiałem reklamowym BNS IT s.c. i pozostaje własnością intelektualną BNS IT s.c..
Może być rozpowszechniany tylko w takiej postaci w jakiej jest. Używanie zawartych tu treści i form bez
zaznaczenia autorstwa i pochodzenia pliku, zwłaszcza na użytek prowadzenia szkoleń, wykładów i
wystąpień publicznych, jest zabronione.
2. Katalog szkoleń Harmonogram szkoleń Zadaj pytanie
Wprowadzenie do NUnit
Wybrane atrybuty NUnit
Asercje w modelu klasycznym
Asercje w modelu ograniczeń
3. Katalog szkoleń Harmonogram szkoleń Zadaj pytanie
Popularne narzędzie do testowania w
języku C#.
Test Runner uruchamia się jako
niezależna aplikacja.
Narzędzie potrafi uruchamiać testy
pojedynczo i zbiorowo.
Tworzenie i testowanie aplikacji z użyciem Test-Driven Development 3
4. Katalog szkoleń Harmonogram szkoleń Zadaj pytanie
Nastawiony na asercje.
Klasa testowa musi być oznaczona
atrybutem [TestFixture].
Metody testowe muszą być oznaczone
atrybutem [Test].
Testy ze względów porządkowych
warto wydzielić do osobnego katalogu
tests.
Tworzenie i testowanie aplikacji z użyciem Test-Driven Development 4
5. Katalog szkoleń Harmonogram szkoleń Zadaj pytanie
namespace Bnsit.Tdd.Intro
{
Oznaczenie fixture
[TestFixture]
public class StringI18Test
{
Adnotacja oznaczająca test
[Test]
public void TestDifferentLanguageVersions()
{
Hashtable versions = new Hashtable();
versions.Add(quot;plquot;, quot;Dzień dobry przyjacieluquot;);
versions.Add(quot;dequot;, quot;Hallo Freundquot;); Sprawdzenia - asercje
versions.Add(quot;enquot;, quot;Hello friendquot;);
StringI18n stringI18n = new StringI18n(versions);
Assert.That(quot;Dzień dobry przyjacieluquot;
.Equals(stringI18n.FindMessage( quot;plquot; )));
Assert.That(quot;Hallo Freundquot;.Equals(stringI18n.FindMessage(quot;dequot;)));
Assert.That(quot;Hello friendquot;.Equals(stringI18n.FindMessage(quot;enquot;)));
}
}
}
Tworzenie i testowanie aplikacji z użyciem Test-Driven Development 5
6. Katalog szkoleń Harmonogram szkoleń Zadaj pytanie
Klasa testowa musi spełniać
następujące warunki:
musi być publiczna,
nie może być abstrakcyjna,
musi posiadać domyślny konstruktor.
Tworzenie i testowanie aplikacji z użyciem Test-Driven Development 6
7. Katalog szkoleń Harmonogram szkoleń Zadaj pytanie
[Test] - dana metoda zostanie
potraktowana jako test.
Metoda musi mieć sygnaturę
public void NazwaMetody()
namespace Bnsit.Tdd.Intro
{
[TestFixture]
public class SampleTest
{
[Test]
public void TestToString()
{
String text = quot;To jest napisquot;;
Assert.That(text.ToString().Equals(quot;To jest napisquot;));
}
}
}
Tworzenie i testowanie aplikacji z użyciem Test-Driven Development 7
8. Katalog szkoleń Harmonogram szkoleń Zadaj pytanie
ExceptionType – typ spodziewanego wyjątku
ExpectedMessage – spodziewany komunikat
UserMessage – komunikat w przypadku nie
wystąpienia wyjątku w odpowiedniej postaci
MatchType – dopasowanie komunikatu Contains,
Exact, Regex
[Test]
[ExpectedException(
ExceptionType = typeof(NullReferenceException),
ExpectedMessage = quot;Odwołaniequot;,
UserMessage = quot;Should be nullquot;,
MatchType = MessageMatch.Contains )]
public void TestExpectedException()
{
String text = null;
Assert.That(text.ToString().Equals(quot;textquot;));
}
Tworzenie i testowanie aplikacji z użyciem Test-Driven Development 8
9. Katalog szkoleń Harmonogram szkoleń Zadaj pytanie
[TestFixtureSetUp] – metoda zostanie wykonana
raz przed wszystkimi testami w danej klasie.
Zazwyczaj używana do inicjacji współdzielonych
zmiennych przez wszystkie testy. Może być
używana np. do inicjacji połączenia z bazą
danych.
[TestFixtureTearDown] – metoda zostanie
wykonana raz po wszystkich testach w danej
klasie.
Podobnie jak wyżej. Dotyczy procesu kończenia
testu.
Tworzenie i testowanie aplikacji z użyciem Test-Driven Development 9
10. Katalog szkoleń Harmonogram szkoleń Zadaj pytanie
[TestFixture]
public class StringI18Test
{
Hashtable versions = new Hashtable();
[TestFixtureSetUp]
public void InitTests()
{
versions.Add(quot;plquot;, quot;Dzień dobry przyjacieluquot;);
versions.Add(quot;dequot;, quot;Hallo Freundquot;);
versions.Add(quot;enquot;, quot;Hello friendquot;);
}
[Test]
public void TestDifferentLanguageVersions()
{
StringI18n stringI18n = new StringI18n(versions);
Assert.That(quot;Dzień dobry przyjacieluquot;
.Equals(stringI18n.FindMessage(quot;plquot;)));
Assert.That(quot;Hallo Freundquot;.Equals(stringI18n.FindMessage(quot;dequot;)));
Assert.That(quot;Hello friendquot;.Equals(stringI18n.FindMessage(quot;enquot;)));
}
Tworzenie i testowanie aplikacji z użyciem Test-Driven Development 10
11. Katalog szkoleń Harmonogram szkoleń Zadaj pytanie
[SetUp] – metoda zostanie wykonana przed
każdym testem w danej klasie.
Zazwyczaj używana do inicjacji współdzielonych
zmiennych przez wszystkie testy w klasie.
Służy do ustawiania tego samego stanu początkowego
dla każdego testu .
[TearDown] – metoda zostanie wykonana po
każdym teście w danej klasie.
Podobnie jak wyżej. Dotyczy procesu kończenia
testu.
Tworzenie i testowanie aplikacji z użyciem Test-Driven Development 11
12. Katalog szkoleń Harmonogram szkoleń Zadaj pytanie
[SetupFixture] – oznaczenie klasy, w której
znajdą się metody z atrybutami [SetUp] i
[TearDown]
Metody te wykonają się raz przed i po wszystkich
testach z wszystkich klas w danej przestrzeni
nazw.
Jeśli klasa z takim atrybutem znajduje się poza
przestrzenią nazw, będzie dotyczyć wszystkich
testów w danym podzespole (ang. assembly).
Tworzenie i testowanie aplikacji z użyciem Test-Driven Development 12
13. Katalog szkoleń Harmonogram szkoleń Zadaj pytanie
[Ignore] – test oznaczony tym atrybutem nie
wykona się.
Służy do czasowego wyłączania testów.
[Test]
[Ignore(quot;Test wycofanyquot;)]
public void TestToString()
{
String text = quot;To jest napisquot;;
Assert.That(text.ToString().Equals(quot;To jest napisquot;));
}
Tworzenie i testowanie aplikacji z użyciem Test-Driven Development 13
14. Katalog szkoleń Harmonogram szkoleń Zadaj pytanie
[Suite] – oznaczenie metody w klasie, która ma
uruchamiać zestaw testów
Przydatne, gdy wśród testów możemy wyróżnić
grupy testów, które chcemy uruchamiać osobno.
class SuiteTest
{
[Suite]
public static IEnumerable Suite
{
get
{
ArrayList suite = new ArrayList();
suite.Add(new SampleTest());
suite.Add(new StringI18Test());
return suite;
}
}
}
Tworzenie i testowanie aplikacji z użyciem Test-Driven Development 14
15. Katalog szkoleń Harmonogram szkoleń Zadaj pytanie
[Category] – testy lub klasy testowe możemy
opatrywać nazwą.
Przydatne, gdy wśród testów możemy wyróżnić
nazwą grupy testów, które chcemy uruchamiać
osobno.
[Test]
[Category(quot;Introductoryquot;)]
public void TestToString()
{
String text = quot;To jest napisquot;;
Assert.That(text.ToString().Equals(quot;To jest napisquot;));
}
Tworzenie i testowanie aplikacji z użyciem Test-Driven Development 15
16. Katalog szkoleń Harmonogram szkoleń Zadaj pytanie
Assert.AreEqual( wartość_oczekiwana, wartość_aktualna
[, string komunikat] )
Assert.AreEqual( wartość_oczekiwana, wartość_aktualna
[, string komunikat] )
Należy zachowywać kolejność wartość oczekiwana –
aktualna, gdyż tylko wtedy komunikaty generowane
przez NUnit będą w sposób prawidłowy informowały o
przebiegu procesu testowania.
Komunikat jest opcjonalny.
Można go dodać, aby uściślić przyczynę
niepowodzenia testu.
Tworzenie i testowanie aplikacji z użyciem Test-Driven Development 16
17. Katalog szkoleń Harmonogram szkoleń Zadaj pytanie
Assert.IsNull( referencja [, string komunikat] )
Assert.IsNotNull( referencja [, string komunikat] )
Sprawdza czy podana referencja to null lub nie null.
Assert.AreSame( referencja_oczekiwana, referencja_aktualna
[, string komunikat] )
Assert.AreNotSame(referencja_oczekiwana, referencja_aktualna
[, string komunikat] )
Sprawdza czy podane referencje wskazują
(lub nie) na ten sam obiekt.
Tworzenie i testowanie aplikacji z użyciem Test-Driven Development 17
18. Katalog szkoleń Harmonogram szkoleń Zadaj pytanie
Assert.IsTrue( bool warunek [, string komunikat] )
Assert.IsNotTrue( bool warunek [, string komunikat] )
Sprawdza czy podany warunek jest prawdziwy lub
fałszywy.
Assert.Fail( [ string komunikat ] )
Powoduje, że test, którego sterowanie
dochodzi do tego miejsca, nie przechodzi.
Najczęściej używane do zaawansowanego
testowania wyjątków.
Tworzenie i testowanie aplikacji z użyciem Test-Driven Development 18
19. Katalog szkoleń Harmonogram szkoleń Zadaj pytanie
Assert.That( bool warunek [, string komunikat] )
Assert.That( wartość_oczekiwana, IConstraint ograniczenie,
[, string komunikat] )
W tym modelu używana jest pojedyncza metoda
Assert.That, zaś warunki sprawdzane są za
pomocą obiektów ograniczeń. Na przykład:
[Test]
public void TestAssertThat()
{
String myString = quot;Helloquot;;
Hashtable versions = new Hashtable();
Assert.That(myString, Is.EqualTo(quot;Helloquot;));
Assert.That(myString, Is.Not.Null);
Assert.That(versions, Is.Empty);
Assert.That(2 + 2, Is.GreaterThan(3) & Is.LessThan(5));
}
Tworzenie i testowanie aplikacji z użyciem Test-Driven Development 19