Instrukcja laboratoryjna

Podobne dokumenty
Instrukcja laboratoryjna cz.3

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

Baza danych sql. 1. Wprowadzenie

Wprowadzenie do Doctrine ORM

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

Instalacja Webroot SecureAnywhere przy użyciu GPO w Active Directory

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

Załącznik nr 8. do Studium Wykonalności projektu Sieć Szerokopasmowa Polski Wschodniej województwo podkarpackie

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

Leszek Stasiak Zastosowanie technologii LINQ w

Microsoft.NET: LINQ to SQL, ASP.NET AJAX

Kostki OLAP i język MDX

Instrukcja laboratoryjna cz.6

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

Zaawansowane aplikacje internetowe - laboratorium

ZAPOZNANIE SIĘ ZE SPOSOBEM PRZECHOWYWANIA

Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl

Po pobraniu plików instalacyjnych w pierwszej kolejności dokonujemy instalacji serwera ESET Remote Administrator Server

Tworzenie i wykorzystanie usług sieciowych

Proces ETL MS SQL Server Integration Services (SSIS)

Praca z programami SAS poza lokalną siecią komputerową UZ. Zestawienie tunelu SSH oraz konfiguracja serwera proxy w przeglądarce WWW

Użytkowanie PortableGit w systemie Windows. 1. Najważniejsze informacje

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Instrukcja obsługi aplikacji Karty Pojazdów dla Dealerów Samochodowych

Jak przenieść bazę danych na zdalny serwer?

Bazy danych Ćwiczenie 1 Instrukcja strona 1 Wersja ogólna

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

BACKUP BAZ DANYCH MS SQL

Kolejne osoby możemy wyświetlać naciskając przyciski do przesuwania rekordów.

Pracownia internetowa w szkole ZASTOSOWANIA

BACKUP BAZ DANYCH FIREBIRD

Instrukcja laboratoryjna nr.4

Problemy techniczne SQL Server

Zaawansowane aplikacje internetowe laboratorium REST

Laboratorium - Użycie narzędzia Przywracanie systemu w systemie Windows XP

Program współpracuje z : Windows XP, Powerdraft 2004, v8, XM, Microstation 2004, v8, XM.

Forte Zarządzanie Produkcją Instalacja i konfiguracja. Wersja B

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

Product Update Funkcjonalność ADR dla przemienników Częstotliwości PowerFlex 750 oraz 525 6

STWORZENIE BIBLIOTEKI SŁUŻĄCEJ DO WCZYTYWANIA

Instrukcja instalacji Control Expert 3.0

Aplikacje WWW - laboratorium

Podstawy technologii WWW

Z pojedynczym obiekcie zasady grupy znajdziemy dwa główne typy ustawień:

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

Zdalny dostęp SSL. Przewodnik Klienta

Założenia do ćwiczeń: SQL Server UWM Express Edition: \SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

Dokumentacja fillup - MS SQL

1. MOZILLA THUNDERBIRD (31.3.0) 2 2. WINDOWS LIVE MAIL THE BAT HOME EDITION ( BIT) 30

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

2. Podstawy narzędzia Application Builder, budowa strony, kreatory aplikacji

Instalacja Active Directory w Windows Server 2003

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

INSTRUKCJA LABORATORIUM Automatyzacja procesów przemysłowych.

QualitySpy moduł reports

ACCESS ćwiczenia (zestaw 1)

Problemy techniczne SQL Server

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

SZYBKI START. Tworzenie nowego połączenia w celu zaszyfrowania/odszyfrowania danych lub tekstu 2. Szyfrowanie/odszyfrowanie danych 4

Instrukcja instalacji programu ARPunktor wraz z serwerem SQL 2005 Express

Płace Optivum. 1. Zainstalować serwer SQL (Microsoft SQL Server 2008 R2) oraz program Płace Optivum.

Laboratorium - Użycie narzędzia Przywracanie systemu w systemie Windows 7

PRODUKCJA BY CTI INSTRUKCJA INSTALACJI I KONFIGURACJI

Zacznijmy więc pracę z repozytorium. Pierwsza konieczna rzecz do rozpoczęcia pracy z repozytorium, to zalogowanie się w serwisie:

Git, Bitbucket, IntelliJ IDEA

5.6.2 Laboratorium: Punkty przywracania

Palety by CTI. Instrukcja

Informatyka I : Tworzenie projektu

Aplikacje WWW - laboratorium

TEMAT ĆWICZENIA Zapoznanie z technologią LINQ

Konfiguracja klienta Lotus Notes R6 z certyfikatami i kluczami na karcie kryptograficznej lub w pliku.

KASK by CTI. Instrukcja

Procedura aktualizacji systemu TelkomBud. dla serwera DBfC w wersji 4.x

Minimalna wspierana wersja systemu Android to zalecana 4.0. Ta dokumentacja została wykonana na telefonie HUAWEI ASCEND P7 z Android 4.

Instrukcja instalacji i konfiguracji bazy danych SQL SERVER 2008 EXPRESS R2. Instrukcja tworzenia bazy danych dla programu AUTOSAT 3. wersja 0.0.

Połączenie AutoCad'a z bazą danych

Backend Administratora

Instrukcja laboratoryjna nr.2

Praca z programami SAS poza lokalną siecią komputerową UZ. Zestawienie tunelu SSH oraz konfiguracja serwera proxy w przeglądarce WWW

Laboratorium - Użycie narzędzia Przywracanie systemu w Windows Vista

Zapytania i wstawianie etykiet z bazy danych do rysunku

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

Windows 10 - Jak uruchomić system w trybie

Zastępstwa Optivum. Jak przenieść dane na nowy komputer?

Defekty Mr Buggy 4. Znane, nieznane i literówki (wybrane)

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika

Naprawa uszkodzonej bazy Interbase/Firebird

Ćw. I. Środowisko sieciowe, połączenie internetowe, opcje internetowe

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3

Instalacja pełnej wersji (development i/lub Windows runtime) oprogramowania Wonderware InTouch Machine Edition

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Asix.Evo - Uruchomienie aplikacji WWW

Instrukcja tworzenia aplikacji bazodanowej opartej o technologię Oracle i platformę.net

Optimed24 Przenoszenie bazy danych PostrgreSQL

Katalog książek cz. 3: Web Service

timetrack Przewodnik Użytkownika timetrack Najważniejsze Funkcje

Pracownia internetowa w każdej szkole (edycja jesień 2005)

Zadanie 1. Stosowanie stylów

Transkrypt:

Zaawansowane techniki obiektowe 2016/17 Instrukcja laboratoryjna Testy funkcjonalne Prowadzący: Tomasz Goluch Wersja: 1.0

Testowanie aplikacji z bazą danych Większość współczesnych aplikacji korzysta z bazy danych. Ich testowanie nie należy do najłatwiejszych z wielu powodów. M.in. problemem może być przygotowanie danych testowych w bazie danych oraz zmiana jej zawartości podczas przeprowadzania testów (np. dodanie/zmodyfikowanie rekordu). Celem ćwiczenia jest stworzenie testów dla aplikacji z wykorzystaniem rzeczywistej bazy danych. Dodatkowe zadanie polega na rozszerzeniu istniejącej aplikacji o określoną funkcjonalność oraz automatyzację napisanych testów w oparciu o aplikację TeamCity. Solucja Została przygotowana solucja z dwoma projektami (do pobrania ze strony przedmiotu). Pierwszy projekt jest biblioteką, która zawiera kod produkcyjny, drugi projekt zawiera test (MSTest). Projekty są poprawnie skonfigurowane oraz zawierają wszystkie niezbędne biblioteki (Entity Framework 5.0). Aplikacja skonfigurowana jest tak, że używa bazy danych w folderze D:\Temp\blog-test.mdf, dlatego też należy stworzyć ten folder, lub zmienić konfigurację w projekcie z testami (app.config). Aplikacja korzysta z narzędzia Entity Framework i zawiera klasę z modelem Post, kontekst bazy danych ( Code First ) BlogContext oraz klasę repozytorium PostRepository, która stanowi warstwę abstrakcji nad klasą kontekstu (wzorzec Repozytorium). W pierwszej kolejności należy zbudować całą solucję i uruchomić istniejący test za pomocą narzędzia wbudowanego w Visual Studio 2010 klikając PPM na nazwie testu i wybierając odpowiednią opcję. Wynik testu jest negatywny 1 ponieważ metoda zwróciła 0 rekordów, a oczekiwana liczba to 1. 1 Jeżeli błąd powiązany jest z niemożliwością utworzenia bazy danych najprawdopodobniej będzie to związane z niewłaściwą wartością atrybutu connectionstring w pliku konfiguracyjnym App.config. Aby sprawdzić jaki format jest poprawny można dodać nową pusta bazę do projektu (PPM Add New Item Data Service-based Database). Następnie, korzystając z narzędzia Serwer Explorer odnajdujemy połączenie z naszą bazą w sekcji Data Connection, klikamy na nim PPM, wybieramy z menu podręcznego opcję Property i odszukujemy właściwość DataString.

Można sprawić, żeby test dał wynik pozytywny poprzez dodanie rekordu do tabeli w bazie danych. Aby to zrobić należy otworzyć plik bazy za pomocą Server Explorera w narzędziu Visual Studio 2010 (Tools -> Connect to Database a następnie wpisać dane jak poniżej).

Jeśli plik z bazą nie znajduje się w folderze d:\temp należy się upewnić, że projekt z testami został przebudowany oraz testy zostały uruchomione (ponieważ baza tworzy się podczas wywołania testu). Następnie należy dodać rekord do tabeli Posts (wybierając opcję Show Table Data z menu kontekstowego tabeli) - dane nie są istotne tylko sam fakt istnienia rekordu. NASTĘPNIE NALEŻY ZAMKNĄĆ POŁĄCZENIE Z BAZĄ DANYCH (w Server Exlorere). Po dodaniu rekordów należy ponownie uruchomić testy tak jak poprzednio. Jeśli wszystko zostało wykonane poprawnie należy zgłosić ten fakt prowadzącemu. Przygotowanie danych w ten sposób jest bardzo niewydajne i wymusza aby wszystkie testy bazowały na jednym (niezmiennym) stanie bazy. Dlatego też dużo lepszym rozwiązaniem jest przygotowanie danych w środowisku testowym. Aby to zrobić należy dodać podany poniżej kod na końcu części arrange w teście. // -- prepare data in db context.posts.tolist().foreach(x => context.posts.remove(x)); context.posts.add(new Post Author = "test", Content = "test, test, test..." }); context.savechanges(); Następnie należy uruchomić ponownie test. Wynik powinien być również pozytywny. Należy zgłosić ten fakt prowadzącemu. Ten sposób również jest mało wydajny, ponieważ kod ten musi być kopiowany do każdego testu. Można kod przygotowujący dane wynieść do metody z atrybutem [TestInitialize], ale wtedy również musimy w ten sam sposób przygotowywać wszystkie inne klasy testowe. Do projektu została dołączona biblioteka, która umieszczona jest w folderze packages/dbtesthelpers/ TDD.DbTestHelpers.dll. Aby skorzystać z biblioteki należy dodać klasę bazową DbBaseTest<BlogFixtures> dla klasy RepositoryTests, która znajduje się w namespace ie TDD.DbTestHelpers.Core. Klasę BlogFixtures należy stworzyć w projekcie z testami i powinna ona wyglądać następująco:

public class BlogFixtures : YamlDbFixture<BlogContext, BlogFixturesModel> public BlogFixtures() SetYamlFiles("posts.yml"); } } Należy uzupełnić brakujące usingi, natomiast klasa BlogFixtures powinna wyglądać następująco: public class BlogFixturesModel public FixtureTable<Post> Posts get; set; } } Jeśli wszystko zostało wykonane poprawnie projekt powinien się budować. Ostatnim krokiem jest dodanie danych, w tym celu należy stworzyć folder Fixtures oraz dodać do niego plik posts.yml: Posts: test-post: Author: test Content: test, test, test... Należy zwrócić uwagę na białe znaki. Nie należy używać tabulatorów w plikach yaml lecz dwóch spacji. W ostatnim kroku należy upewnić się, że właściwość Copy to Output Directory tego pliku jest ustawiona na Copy always. Biblioteka jest skonfigurowana poprawnie, należy usunąć kod dodany do testu, który miał przygotowywać bazę danych oraz uruchomić test. Jeśli wynik jest poprawny należy fakt ten zgłosić prowadzącemu. Aby zobaczyć jak działa biblioteka można dodać kolejny post i zmienić test tak, aby weryfikował istnienie dwóch postów.

Zadania do wykonania: 1) Rozszerzyć funkcjonalność repozytorium o możliwość dodawania postów 2) Walidację danych (pola wymagane) 3) (dodatkowe domowe) Dodanie drugiej tabeli (np. komentarze) oraz napisanie obsługi dodawania komentarza i wyświetlenia komentarzy dla konkretnego postu. Uwaga: aby używać relacji pomiędzy tabelami w entity framework należy: 1) Rozszerzyć BlogFixturesModel o kolejną właściwość 2) Użyć albo drugiego pliku dla drugiej tabeli (SetFixtureFiles przyjmuje kolekcję nazw plików) lub dopisać dane dla drugiej kolekcji w już istniejącym stosując tą samą konwencję 3) Używać przypisanych (lokalnie! nie w bazie) kluczy głównych i obcych Np. posts: test-post: Id: 1 Author: test Content: test, test, test... comments: test-post-comment: PostId: 1 Content: ha ha ha