Programowanie w Ruby



Podobne dokumenty
Testowanie aplikacji. Kurs języka Ruby

Programowanie w Ruby

Programowanie w Ruby

Programowanie w Ruby

Kurs rozszerzony języka Python

Programowanie w Ruby

Kurs języka Ruby. Ruby on Rails ActionPack

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

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

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

Programowanie w Ruby

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

Zaawansowany kurs języka Python

Kurs rozszerzony języka Python

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

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

Laboratorium 7 Blog: dodawanie i edycja wpisów

Testy aplikacji webowych

Instrukcja laboratoryjna

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

REFERAT PRACY DYPLOMOWEJ

Modele danych walidacja widoki zorientowane na model

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

Podstawy programowania III WYKŁAD 4

Programowanie w Ruby

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

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

Programowanie w Ruby

Podstawy technologii WWW

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

Testowanie aplikacji Java Servlets

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

Laboratorium Kierunki Rozwoju oprogramowania REST, Django

Katalog książek cz. 3: Web Service

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

Instrukcja laboratoryjna cz.3

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

Aplikacje webowe z wykorzystaniem Node.js oraz Express

Programowanie obiektowe

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

Wstęp do testowania : Szymon Ramczykowski

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

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

Programowanie w Ruby

PODSTAWOWE POJĘCIA BAZ DANYCH


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

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

Materiały do laboratorium MS ACCESS BASIC

Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, praktyki i narzędzia

QualitySpy moduł reports

Podręcznik Integracji

Programowanie obiektowe

Laboratorium nr 3 Podstawy Ruby on Rails

Wprowadzenie do Doctrine ORM

Przewodnik użytkownika (instrukcja) AutoMagicTest

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

learningpanel - logowanie

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

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

LeftHand Sp. z o. o.

Programowanie w Ruby

METODY PROGRAMOWANIA

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

Dokumentacja użytkownika

Automatyzacja testowania oprogramowania. Automatyzacja testowania oprogramowania 1/36

Aplikacje WWW - laboratorium

Automatyzacja Testowania w WEB 2.0

Aplikacje internetowe - laboratorium

Online Workbook Przewodnik dla nauczycieli

Szczegółowy opis zamówienia:

Maciej Oleksy Zenon Matuszyk

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

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

Wydział Informatyki, Elektroniki i Telekomunikacji. Katedra Informatyki

Programowanie MorphX Ax

Wykład I. Wprowadzenie do baz danych

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych

a. (20 pkt.) Aplikacja powinna zawierać następujące elementy: 2. Formularz edycji profilu użytkownika (2 pkt.).

Dodawanie cennika na portalu świadczeniodawcy SZOI

Laboratorium nr 5. Bazy danych OpenOffice Base.

Kurs rozszerzony języka Python

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

Portal Personelu dostępny jest pod adresem

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

1. Doradcy Logowanie i Pulpit Mój profil Moje kwalifikacje Moi klienci Szczegóły klientów...

Tester oprogramowania 2014/15 Tematy prac dyplomowych

Baza danych sql. 1. Wprowadzenie

ELEKTRONICZNA KSIĄŻKA ZDARZEŃ

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

BACKUP BAZ DANYCH FIREBIRD

Wdrożenie nowych Systemów Notujących na TGE

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

System magazynowy małego sklepu.

PROJEKT Z BAZ DANYCH

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP002017_ Laboratorium 11 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

Korporacyjna Magistrala Usług na przykładzie Mule ESB

Dokumentacja smsapi wersja 1.4

Transkrypt:

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

Plan wykładu Testowanie aplikacji w Ruby on Rails Testowanie modeli Testy funkcjonalne: testowanie kontrolerów Testy integracyjne

Testowanie Rodzaje testów: Testy jednostkowe Testy funkcjonalne Testy integracyjne

Testy jednostkowe Testy sprawdzające pojedyncze funkcjonalności (metodę, funkcję etc.)

Środowisko testowe Testy są zebranane w klasie (podklasie klasy ActiveSupport::TestCase) jako metody o nazwie test * (przypadki testowe) Klasa jest katalogu test/unit/ Uruchomienie testów: ruby test/unit/...rb.

Testy w Railsach Railsy oferują Automatycznie wygenerowane pliki z prototypami testów Bazę danych do testów Wsparcie tworzenia zmiennych tymczasowych

Przykład Należy zajrzeć do notatek z wykładu 6

Testowanie modeli W modelach możemy definować walidację, tj. warunki poprawności danych sprawdzane podczas wprowadzania danych

Czego potrzebujemy Testowej bazy danych Testowych danych Zestawu testów Asercji

Przygotowanie testowej bazy danych Zajrzenie do config/database.yml

Przygotowanie testowej bazy danych Zajrzenie do config/database.yml Wygenerowanie odpowiednich tabel w bazie: rake db:test:prepare

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

Przykład danych testowych dla modelu wykladies.yml ruby: id: 1 title: Kurs języka Ruby ldi: id: 1 title: Logika dla informatyków

Zestaw testów class WykladTest < ActiveSupport::TestCase fixtures :Wyklads end

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

Korzystanie z infrastruktury testowej Deklaracja fixtures :wyklads łączy dane z pliku fixtures/wykladies.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

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

Inne asercje assert valid(obiekt activerecord) sprawdzenie, czy obiekt przechodzi walidację

Inne asercje assert valid(obiekt activerecord) sprawdzenie, czy obiekt przechodzi walidację flunk(komunikat) zawsze kończy się niepowodzeniem

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

Pola obiektu klasy testującej @controller = WykladsController.new @request = ActionController::TestRequest.new @response = ActionController::TestResponse.new

Metody i funkcje pomocnicze get :akcja, opcje wywołania, sesja post :akcja, :opcje wywołania

Asercje assert response :odpowiedź assert redirected to :action => akcja

Przykłady Przykład prosty def test index get :index assert response :success # assert response 200 end

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

Testowanie edycji post :edit :wyklad => { :title => Ruby, :ects => 1}

Wynik działania akcji (@response) Komunikat o powodzeniu/niepowodzeniu/... Strona w html u

Weryfikacja html a assert select tag tekst

Weryfikacja html a assert select tag tekst Np: assert select title, Programowanie w Ruby

Plan wykładu Testowanie aplikacji w Ruby on Rails Testowanie modeli Testy funkcjonalne: testowanie kontrolerów Testy integracyjne

Testy integracyjne w RoR Kontrola przepływu informacji przez aplikację Testy polegają na testowaniu scenariuszy tests/integration Generowanie szkieletu $ ruby script/generate integration test pierwszak

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

Implementacja scenariusza Wstęp Zajęcia.delete all ruby = wyklad(:ruby) ldi = wyklads(:ldi)

Wejście na stronę get /wykladies/index assert redirect to /login/haslo post via redirect /login/validate :user => { :name => pierwszak, :passwd => ******* } assert template wykladies/index assert response :success assert equal session[:user id] = Student(:pierwszak).id

Wybranie danych get /wykladies/ + wyklad(:ruby).id + /dodaj/ assert template index get /wykladies/ + wyklad(:ldi).id + /dodaj/ assert equal 2, session[:zajecia].dane.size