SQL tvrzeni
Uplne stejne jako i tvrzeni u aplikacnich unit testu, je SQL tvrzeni ktere pouzivaji RAISERROR prikaz. Za vyuzititm tohoto T-SQL prikazu vy muzete zapnout chybu, hlaseni ktere bude zahrnovat odpovidajici obsah a uroven chyby. To znamena ze muzete pouzivat tento prikaz za pomoci podminecne logiky, ktera zajisti spadnitu testu ve pripade, kdyz ocekavany vysledek neschoduje ze skutecnosti.
Tento postup nejlepe ukazat na priklade. Napiseme jednoduchy test pro [dbo].[Ten Most Expensive Products] ulozenu proceduru z databazi Northwind. Jak se da ocekavat, tato ulozena procedura by mela vratit deset nejdrazsich produktu z tabulky product v databazi Northwind. Zkontolujeme v nasem testu, ze procedura ve skutecnosti vraci 10 radku. Vy muzete overit vysledek spustenim ulozene procedury a pak kontrolou ze pocet radku je 10. Pokud ne, tak vy muzete spustit RAISERROR aby test spadnoul.
Takovy testovaci skript bude vypadat nasledovne::
EXEC [dbo].[Ten Most Expensive Products]
IF (@@ROWCOUNT <> 10)
RAISERROR('Ten Most Expensive Products did not return 10 rows',11,1)
Tento priklad ma jednoduchu logiku podminek, samozrejme ze vy muzete pro overeni pouzit libovolne podminky aby mit jistotu ze vysledek se schoduje s ocekavanim.
Podminky testu
Team Edition for Database Professionals ale nejenom provadi takove overeni. Uzivatele mohou potrebovat radu obecnych overovacich procesu i aplikace musi splnovat teto ocekavani. Takto vznikl navrch postavenych na uzivatelskem rozhrani klientskych testovacich podminek, ktere overuji vysledky vasich testu po spusteni SQL. Nastaveni takovych podminek se dela uvnitr Database Unit Test Designer.
Team Edition for Database Professionals zahrnuje testove podminke sepsane v tabulce 1.
Tabulka 1. Seznam testovych podminek
|
Podminka
|
Popis
|
|
Pocet radku
|
Podminka neni splnena, jestli ResultSet nevraci ocekavany pocet radku.
|
|
Ciselna hodnota
|
Podminka neni splnena, jestli ciselna hodnota ve vysledku ResultSet nerovna se ocekavane hodnote
|
|
Prazdny seznam
|
Podminka neni splnena, pokud vysledek neni prazdny.
|
|
Neprazdny seznam
|
Podminka neni splnena, pokud vysledek je prazdny.
|
|
Cas provedeni
|
Podminka neni splnena, pokud cas provedeni je vetsi, nez ocekavate. Tento cas zahrnuje cas, ktery je potreba na provedeni SQL oproti serveru za pouzitim ADO.NET dodavatele (provider).
|
|
Bezvychodny
|
Podminka vzdy ma bezvychodny vysledek. Tato podminka vzdicky pridana implicitne aby vedet ze test jeste neni pripraven.
|
Prijemne ze testy uvnitr Team Edition for Database Professionals mohou byt uplne nastavitelne. Moznost zmen v testovych podminkach je dulezyta moznost rozsireni.