Programowanie w Ruby

Podobne dokumenty
Programowanie w Ruby

Testowanie aplikacji. Kurs języka Ruby

Programowanie w Ruby

Programowanie w Ruby

Kurs rozszerzony języka Python

Ruby i Ruby on Rails. Mateusz Drożdżyński

Programowanie w Ruby

Kurs języka Python. Wykład 11. Marcin Młotkowski. 4 stycznia Kontrola poprawności podczas biegu programu. 2 Testowanie oprogramowania

Kurs języka Ruby. Ruby on Rails ActionPack

Testowanie aplikacji JAVA Laboratorium 8 (Tabele w scenariuszach JBehave. Projekt z podstaw BDD oraz atrap.)

Programowanie w Ruby

EPI: Interfejs Graficzny Wykład nr 4 Podstawy frameworku Rails

Całościowe podejście do testowania automatycznego dla programistów. (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Kurs rozszerzony języka Python

Programowanie w Ruby

Programowanie w Ruby

REFERAT PRACY DYPLOMOWEJ

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Zaawansowany kurs języka Python

Program szkolenia: Tworzenie aplikacji w Ruby on Rails z wykorzystaniem zwinnych metodyk

Laboratorium nr 3 Podstawy Ruby on Rails

Programowanie w Ruby

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

Podstawy technologii WWW

Laboratorium 7 Blog: dodawanie i edycja wpisów

Testy aplikacji webowych

Instrukcja laboratoryjna

TDD w Django South Sorl Haystack + Whoosh Małe, a cieszy Deployment Koniec. Wspomagacze Django. Jan Filipowski. 25 maja 2010

Ruby on Rails. Supersilnik WWW. Łukasz Włodarczyk

Automatyzacja testów aplikacji webowych w Selenium podstawy. Natalia Krawczyk

Modele danych walidacja widoki zorientowane na model

Podstawy programowania III WYKŁAD 4

Programowanie w Sieci Internet JSP ciąg dalszy. Kraków, 9 stycznia 2015 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Laboratorium Kierunki Rozwoju oprogramowania REST, Django

Microsoft Access materiały pomocnicze do ćwiczeń cz. 1

Wprowadzenie do Doctrine ORM

Programowanie obiektowe

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

1. Rejestracja 2. Logowanie 3. Zgłaszanie nowego wniosku projektowego

Aplikacje WWW - laboratorium

Instrukcja laboratoryjna cz.3

Wstęp do testowania : Szymon Ramczykowski

Materiały do laboratorium MS ACCESS BASIC

Testowanie aplikacji Java Servlets

Programowanie obiektowe

Baza danych i ORM mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Katalog książek cz. 3: Web Service

Automatyzacja Testowania w WEB 2.0

Automatyzacja testowania oprogramowania. Automatyzacja testowania oprogramowania 1/36

Aplikacje webowe z wykorzystaniem Node.js oraz Express

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner

Przewodnik użytkownika (instrukcja) AutoMagicTest

learningpanel - logowanie


PODSTAWOWE POJĘCIA BAZ DANYCH

Programowanie MorphX Ax

Dokumentacja użytkownika

ELEKTRONICZNA KSIĄŻKA ZDARZEŃ

BACKUP BAZ DANYCH FIREBIRD

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych

MeetingHelper. Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania. Instrukcja obsługi dla programisty

Tester oprogramowania 2014/15 Tematy prac dyplomowych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Plan. Aplikacja. Architektura aplikacji. Architektura aplikacji Tworzenie aplikacji Application Builder podstawy

Programowanie w Ruby

Zrąb JavascriptMVC. Krzysztof Płocharz. 6 kwiecień Uniwersytet Warszawski

Przepis 1. Edycja formularza w miejscu 13. Rails sprawia, że edycja w miejscu jest prosta dzięki kontrolce script.aculo.us

QualitySpy moduł reports

Podręcznik Integracji

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Laboratorium nr 5. Bazy danych OpenOffice Base.

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Całościowe podejście do testowania automatycznego dla programistów. /C#/PHP (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych

Baza danych sql. 1. Wprowadzenie

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Wykład I. Wprowadzenie do baz danych

PROJEKT Z BAZ DANYCH

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

Obok mamy przycisk Edytuj który umożliwia edycję danych już istniejącego użytkownika.

Programowanie obiektowe

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne

Automatyzacja narzędziami open source nie musi być trudna

LeftHand Sp. z o. o.

Automatyczne decyzje kredytowe, siła szybkiego reagowania i optymalizacji kosztów. Roman Tyszkowski ING Bank Śląski S.A. roman.tyszkowski@ingbank.

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Spis treści. Przedmowa

Programowanie obiektowe

Oracle Application Express

DOKUMENTY. v Strona 1 z 10

MCAD wersja od 5.0 instrukcja instalacji ręcznej w AutoCAD.

METODY PROGRAMOWANIA

Stworzenie programu KSIĄŻKA ADRESOWA posiadającego funkcjonalności przechowywania danych o osobach dodanych przez użytkownika.

Quiz Aplikacja internetowa

System magazynowy małego sklepu.

PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X

Transkrypt:

Programowanie w Ruby Wykład 13 Marcin Młotkowski 16 stycznia 2015

Plan wykładu 1 Marcin Młotkowski Programowanie w Ruby 2 / 31

Testowanie Rodzaje testów: Testy jednostkowe Testy funkcjonalne Testy wydajnościowe (profilowanie) Marcin Młotkowski Programowanie w Ruby 3 / 31

Dobra wiadomość Generatory modeli i kontrolerów generują też szkielety testów. Marcin Młotkowski Programowanie w Ruby 4 / 31

Dobra wiadomość Generatory modeli i kontrolerów generują też szkielety testów.../test/ Marcin Młotkowski Programowanie w Ruby 4 / 31

Testy jednostkowe Testy sprawdzające pojedyncze funkcjonalności (metodę, funkcję etc.). Marcin Młotkowski Programowanie w Ruby 5 / 31

Środowisko testowe Testy są metodami podklasy klasy ActiveSupport::TestCase, o nazwie test * (przypadki testowe) Klasa jest katalogu test/unit/ Uruchomienie testów: najprościej ruby test/unit/...rb. Marcin Młotkowski Programowanie w Ruby 6 / 31

Testy w Railsach Railsy oferują Automatycznie wygenerowane pliki z prototypami testów Bazę danych do testów Wsparcie tworzenia zmiennych tymczasowych Marcin Młotkowski Programowanie w Ruby 7 / 31

Przykład Należy zajrzeć do notatek z wykładu 6 Marcin Młotkowski Programowanie w Ruby 8 / 31

W modelach możemy definiować walidację, tj. warunki poprawności danych sprawdzane podczas wprowadzania danych Marcin Młotkowski Programowanie w Ruby 9 / 31

Czego potrzebujemy Testowej bazy danych Testowych danych Zestawu testów Asercji Marcin Młotkowski Programowanie w Ruby 10 / 31

Przygotowanie testowej bazy danych Zajrzenie do config/database.yml Marcin Młotkowski Programowanie w Ruby 11 / 31

Przygotowanie testowej bazy danych Zajrzenie do config/database.yml Wygenerowanie odpowiednich tabel w bazie: rake db:test:prepare Marcin Młotkowski Programowanie w Ruby 11 / 31

Przygotowanie danych testowych Dane są w katalogu test/fixtures Dane są w plikach typu CSV lub YAML Pliki z danymi powinne się nazywać tak jak modele Marcin Młotkowski Programowanie w Ruby 12 / 31

Przykład danych testowych dla modelu wyklads.yml ruby: id: 1 title: Kurs języka Ruby ldi: id: 1 title: Logika dla informatyków Marcin Młotkowski Programowanie w Ruby 13 / 31

Zestaw testów class WykladTest < ActiveSupport::TestCase fixtures :wyklads end Marcin Młotkowski Programowanie w Ruby 14 / 31

Zestaw testów class WykladTest < ActiveSupport::TestCase fixtures :wyklads def test prosty w = Wyklad.new(:title => AiSD ) w.ects = -1 assert!w.valid? end end Marcin Młotkowski Programowanie w Ruby 14 / 31

Korzystanie z infrastruktury testowej Deklaracja fixtures :wyklads łączy dane z pliku fixtures/wyklads.yml z tabelą w bazie danych Przed każdym wywołaniem metody testowej tabela jest wypełniana danymi z pliku Po wykonaniu metody testowej dane są usuwane z tej tabeli Marcin Młotkowski Programowanie w Ruby 15 / 31

Przykład class WykladTest < ActiveSupport::TestCase fixtures :wyklads end def test prosty w = Wyklad.new(:title => AiSD ) w.ects = -1 assert!w.valid? end def test zlozony w = Wyklad.new(:title => wyklads(:ruby).title) assert!w.save end Marcin Młotkowski Programowanie w Ruby 16 / 31

Inne asercje assert valid(obiekt activerecord) sprawdzenie, czy obiekt przechodzi walidację Marcin Młotkowski Programowanie w Ruby 17 / 31

Inne asercje assert valid(obiekt activerecord) sprawdzenie, czy obiekt przechodzi walidację flunk(komunikat) zawsze kończy się niepowodzeniem Marcin Młotkowski Programowanie w Ruby 17 / 31

Architektura testów kontrolerów Szkielety testów kontrolerów są w katalogu tests/functional Testy są zgromadzone w metodach klasy testowej Opcjonalna metoda setup wykonywana przed testami Marcin Młotkowski Programowanie w Ruby 18 / 31

Pola obiektu klasy testującej @controller = WykladsController.new @request = ActionController::TestRequest.new @response = ActionController::TestResponse.new Marcin Młotkowski Programowanie w Ruby 19 / 31

Metody i funkcje pomocnicze get :akcja, opcje wywołania, sesja post :akcja, :opcje wywołania Marcin Młotkowski Programowanie w Ruby 20 / 31

Asercje assert response :odpowiedź assert redirected to :action => akcja Marcin Młotkowski Programowanie w Ruby 21 / 31

Przykłady Przykład prosty def test index get :index assert response :success # assert response 200 end Marcin Młotkowski Programowanie w Ruby 22 / 31

Przykłady Przykład prosty def test index get :index assert response :success # assert response 200 end Przykład złożony def test logowania get :index assert redirected to :login assert equal Niezalogowany, flash[:notice] end Marcin Młotkowski Programowanie w Ruby 22 / 31

Testowanie edycji post :edit :wyklad => { :title => Ruby, :ects => 1} Marcin Młotkowski Programowanie w Ruby 23 / 31

Wynik działania akcji (@response) Komunikat o powodzeniu/niepowodzeniu/... Strona w html u Marcin Młotkowski Programowanie w Ruby 24 / 31

Weryfikacja html a assert select tag tekst Marcin Młotkowski Programowanie w Ruby 25 / 31

Weryfikacja html a assert select tag tekst Np: assert select title, Programowanie w Ruby Marcin Młotkowski Programowanie w Ruby 25 / 31

w RoR Kontrola przepływu informacji przez aplikację Testy polegają na testowaniu scenariuszy tests/integration Generowanie szkieletu $ ruby script/generate integration test pierwszak Marcin Młotkowski Programowanie w Ruby 26 / 31

Przykładowy scenariusz (przypadek użycia) Student wchodzi na stronę i jest przekierowany na stronę logowania Student loguje się Jeśli sukces to jest przekierowany na stronę główną Student wybiera dwa przedmioty Student jest zapisany dwa przedmioty Student się wylogowuje Marcin Młotkowski Programowanie w Ruby 27 / 31

Implementacja scenariusza Wstęp Zajęcia.delete all ruby = wyklad(:ruby) ldi = wyklads(:ldi) Marcin Młotkowski Programowanie w Ruby 28 / 31

Wejście na stronę get /wyklads/index assert redirect to /login/haslo post via redirect /login/validate :user => { :name => pierwszak, :passwd => ******* } assert template wyklads/index assert response :success assert equal session[:user id] = Student(:pierwszak).id Marcin Młotkowski Programowanie w Ruby 29 / 31

Wybranie danych get /wyklads/ + wyklad(:ruby).id + /dodaj/ assert template index get /wyklads/ + wyklad(:ldi).id + /dodaj/ assert equal 2, session[:zajecia].dane.size Marcin Młotkowski Programowanie w Ruby 30 / 31

Uruchamianie poleceniem rake wszystkie testy: rake test testy kontrolerów: rake test:controllers testy jednostkowe: rake test:units Marcin Młotkowski Programowanie w Ruby 31 / 31

Minitest Środowisko do testów, od wersji Ruby 1.9. Marcin Młotkowski Programowanie w Ruby 32 / 31