WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH. Mirosław Gołda, Programista Java

Podobne dokumenty
METODY PROGRAMOWANIA

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

Programowanie obiektowe

Testy automatyczne. Korzystające z junit

Programowanie obiektowe zastosowanie języka Java SE

Program szkolenia: Test Driven Development (TDD) using Spock or JUnit 5

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Ćwiczenie 1. Przygotowanie środowiska JAVA

Techniki efektywnego testowania kodu dla programistów Java (Spock

Wprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2

1 Atrybuty i metody klasowe

Programowanie w Javie cz. 1 Wstęp. Łódź, 24 luty 2014 r.

Aplikacje w środowisku Java

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

Automatyczne testowanie aplikacji Android

Programowanie zespołowe

Programowanie poprzez testy z wykorzystaniem JUnit

Git, Bitbucket, IntelliJ IDEA

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

SZKOLENIE TWORZENIE SYSTEMÓW

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie

Podstawy języka Java. przygotował:

dr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1

Throwable. Wyjatek_1(int x_) { x = x_; } int podaj_x()

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Programowanie obiektowe

Podstawy programowania w lejos

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Java Podstawy. Michał Bereta

Programowanie w Internecie. Java

Wykład 4: Klasy i Metody

Programowanie obiektowe

Języki i metody programowania Java. Wykład 2 (część 2)

JUnit TESTY JEDNOSTKOWE. Waldemar Korłub. Platformy Technologiczne KASK ETI Politechnika Gdańska

Laboratorium Programowania Kart Elektronicznych

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Programowanie warstwy klienta w aplikacji JavaEE

Na przykładzie języków Java, C# i odrobiny C++ Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Programowanie Aplikacji Internetowych w Językach Skryptowych Laboratorium

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

JUNIT. Terminologia. Organizacja testów

Testy jednostkowe - zastosowanie oprogramowania JUNIT 4.0 Zofia Kruczkiewicz

Wstęp do ruby dla programistów javy

Java jako język programowania

Projektowanie aplikacji internetowych laboratorium

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

Java EE produkcja oprogramowania

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Wprowadzenie do testów jednostkowych. Marcin Dziedzic, Wiktor Żołnowski

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ

WYJĄTKI. Jest ona jednak czasochłonna i prowadzi do duŝego zapotrzebowania na zasoby systemu.

Tworzenie i wykorzystanie usług sieciowych

Sexy unit testy. czyli o kilku praktykach w testach jednostkowych

Bazy i Systemy Bankowe Sp. z o.o. ul. Kasprzaka 3, Bydgoszcz

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java Programowanie Obiektowe Ćwiczenie 1- wprowadzenie

JDK można pobrać ze strony

Java pierwszy program w Eclipse «Grzegorz Góralski strona własna

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Testowanie. Ryszard Beczek & Piotr Miłkowski 1 04/11/07

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

Tworzenie aplikacji w języku Java

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Swing Application Framework czyli tam i z powrotem. Copyright Piotr Kochański & Erudis,

Budowa aplikacji webowej w oparciu o Maven2 oraz przykłady testów jednostkowych. Wykonał Marcin Gadamer

Grails. v 1.1 Web Framework

PROGRAMOWANIE DYNAMICZNE

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

Języki i metody programowania Java INF302W Wykład 3 (część 1)

Programowanie obiektowe

Platformy Programistyczne Podstawy języka Java

MATERIAŁY DO ZAJĘĆ I. Podstawowe pojęcia. Algorytm. Spis treści Przepis

Akademia ETI. Wprowadzenie do programowania w Javie PG Java User Group Przemysław Kulesza

Programowanie obiektowe

Spis treści. 1 Java T M

Programowanie obiektowe

Google Web Toolkit Michał Węgorek ZPO 2009

Podstawy programowania obiektowego

Co jeszcze mogą nam dać adnotacje? Adam Warski

Na przykładzie języków Java, C# i odrobiny C++ Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Testowanie I. Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego.

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

Klasy i obiekty cz II

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Architektura rozproszonych magazynów danych

Dokumentacja do API Javy.

Wprowadzenie do języka Java

Klasy abstrakcyjne, interfejsy i polimorfizm

Programowanie obiektowe

Programowanie obiektowe

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

Transkrypt:

WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH Mirosław Gołda, Programista Java

Agenda Kilka słów o języku Groovy Wpięcie Grooviego w projekt Springowy Testy jednostkowe w Groovy Testy integracyjne w Groovy Testy automatyczne w Groovy Jakieś niedogodności?

Groovy - cechy Język skryptowy, dynamiczny, działający na platformie JVM Składnia podobna do Javy, niski próg wejścia w język Wiele elementów składni upraszczających tworzenie kodu Możliwość statycznej kompilacji i sprawdzania typów Świetna i bezproblemowa integracja z Javą

Prosty przykład 1 Poprawny kod Groovy i Java:! public class HelloWorld {! }!! public static void main(string[] args) {! for (int i=1; i<=5; i++) {! }! }! System.out.println("Hello world no." + i);! Możemy go jednak uprościć i uczynić bardziej Groovy.!

Prosty przykład 2 Ale można też tak (1..5).each {! println "Hello world no.${it}"! }! Skrypt Grooviego bez jawnej deklaracji klasy.

Groovy nowe możliwości Kilka z listy uproszczeń Brak średników (można ich używać) Możliwość pominięcia deklaracji typu za pomocą def Domyślny modyfikator widoczności public Wzbogacone możliwości pracy ze Stringami (GStrings) Dodatkowe możliwości pracy na kolekcjach Groovy Beans Brak potrzeby jawnej deklaracji return Domknięcia dostępne chyba od zawsze Część z tych udogodnień za chwilę zobaczymy.

Włączenie Groovy w projekcie Java W build.gradle dodajemy:...! apply plugin: "groovy"!...! dependencies {!...!...! }! compile 'org.codehaus.groovy:groovy-all:2.4.1'! Zmieniamy w strukturze plików: src/java è src/groovy!!

Spock framework testy jednostkowe i integracyjne Czemu jest fajny: jasny podział na bloki given/when/then, czytelne nazwy testów, czytelne raporty niepowodzenia testów, ciekawe konstrukcje, np. tabele w bloku where, Groovy J a więc szansa na zwięzły i czytelny kod testów.

Spock framework - instalacja Dodajemy do build.gradle: dependencies {!...! testcompile 'org.spockframework:spock-core:0.7-groovy-2.0'! testcompile 'org.spockframework:spock-spring:0.7-groovy-2.0'! testcompile 'org.springframework:spring-test:4.1.5.release! testcompile 'cglib:cglib-nodep:3.1!...! }!

Spock framework najprostszy test class MyFirstSpec extends Specification { def "should add up to 5 when 2 and 2 given!"() { }! } expect: 2 + 2 == 5

Spock framework wynik testu MyFirstSpec - should add up to 5 when 2 and 2 given! FAILED Condition not satisfied: 2 + 2 == 5 4 false at MyFirstSpec.should add up to 5 when 2 and 2 given! (Script1.groovy:7)

Spock framework dostępne bloki https://code.google.com/p/spock/wiki/spockbasics

Spock vs JUnit Spock Specification setup()! cleanup()! setupspec()! cleanupspec()! Feature Parametrized feature Condition Exception condition @FailsWith! Interaction JUnit Test class @Before! @After! @BeforeClass! @AfterClass! Test Theory Assertion @Test(expected= )! @Test(expected= )! Mock expectation (EasyMock, JMock ) https://code.google.com/p/spock/wiki/spockbasics

Groovy weather Co robimy: Uruchamiamy aplikację Krótki przegląd aplikacji (struktura, gradle) Testy jednostkowe (kontroler, serwis) Testy integracyjne (serwis, kontroler) Testy automatyczne (gradle, config, Spec, Page, Module)

Gorsze wsparcie IDE niż w przypadku Javy Dynamiczne typowanie sprawia, że nie wszystkie błędy można wyłapać już na etapie kompilacji Dotyczy to niestety także pisania w Groovim, można w nim stworzyć nieczytelny kod Ale w jakim języku nie można? Wsparcie za strony Pivotala dla rozwoju projektów Groovy i Grails kończy się 31 marca 2015 r. Ale prężna społeczność open source.

Linki http://groovy-lang.org/ http://www.gradle.org/docs/current/userguide/ groovy_plugin.html http://spockframework.org/ http://www.gebish.org/ https://github.com/geb/geb-example-gradle http://meetspock.appspot.com/ https://github.com/mirog/groovy-testing-example/

Wykorzystanie języka Groovy w testach jednostkowych, integracyjnych i automatycznych Dziękuję Mirosław Gołda Programista Java e-mail: miroslaw.golda@gmail.com