multiple ways execute junit tests
Tento výukový program ukazuje několik způsobů provádění testů JUnit, jako je spuštění jako test JUnit, použití klávesových zkratek nebo spuštění testu JUnit z příkazového řádku atd .:
Viděli jsme, jak napsat základní testovací případy JUnit a mít přístup k testovacímu zařízení jako jeden z dobrých programovacích postupů pro JUnit v našem předchozím kurzu.
V tomto kurzu se podívejme na různé způsoby, kterými můžeme provádět testy pro JUnit. Budete překvapeni, když se podíváte na počet možností, které jsou k dispozici pro spuštění těchto testovacích případů.
=> Dávejte pozor na jednoduchou tréninkovou sérii JUnit zde.
Co se naučíte:
- Různé způsoby provádění testů JUnit
- # 1) Spustit jako test JUnit
- # 2) Spusťte naposledy provedený test JUnit pomocí možnosti nabídky
- # 3) Spusťte pomocí klávesových zkratek
- # 4) Spusťte pouze jednu zkušební metodu ve třídě
- # 5) Spusťte testy JUnit z příkazového řádku
- # 6) Spusťte testovací sadu pomocí třídy Testrunner
- # 7) Spusťte testovací případy JUnit pomocí Maven
- Závěr
- Doporučené čtení
Různé způsoby provádění testů JUnit
Aby bylo možné provádět testy JUnit, existují určité způsoby, jak pomocí následujících možností spustit soubor jedné třídy s jednou nebo více testovacími metodami:
- Možnost „Spustit jako test JUnit“.
- Spustit poslední provedený test JUnit prostřednictvím možnosti nabídky.
- Spouštějte pomocí klávesových zkratek.
- Spusťte ve třídě pouze jednu testovací metodu.
- Spusťte příkazový řádek.
- Spusťte pomocí souboru třídy Testrunner.
- Spusťte také pomocí Maven.
Poznámka: Provedení testu JUnit prostřednictvím Mavenu bude uvažováno v samostatném kurzu pro JUnit Maven.
Znovu zdůrazníme bod, v tomto tutoriálu se naučíme, jak lze více testů seskupit do testovací sady a jak by ji bylo možné spustit různými způsoby. Kromě toho by měl podrobně popsat určité relevantní a související doplňkové informace.
# 1) Spustit jako test JUnit
Nejjednodušší způsob, jak můžete provádět testy JUnit, je:
Metoda 1:
- Klepněte pravým tlačítkem na soubor třídy v zobrazení Skript
- Vybrat Spustit jako -> Test JUnit
- Soubor třídy se spustí.
Metoda 2:
- Podobně můžete vybrat soubor třídy z pohledu Průzkumník balíčků
- Klepněte pravým tlačítkem myši na soubor
- Vybrat Spustit jako -> Test JUnit
- Soubor třídy se spustí.
Poznámka: Tímto způsobem můžete spustit jeden soubor třídy najednou.
# 2) Spusťte naposledy provedený test JUnit pomocí možnosti nabídky
Soubor třídy JUnit můžete spustit tak, že ponecháte soubor třídy otevřený v editoru. Přejít na horní nabídku Zatmění => Vyberte Spustit => Spustit . Možnost Spustit -> Spustit v zásadě znamená znovu spustit test, který jste provedli jako poslední.
Podívejme se na třídu JUnit s více metodami / testy pro lepší přehlednost toho, jak Spustit -> Spustit práce:
- Scénář 1 : Pokud jste spustili a jediná metoda pomocí @Test, pak když kliknete Spustit -> Spustit , jediná metoda, která běžela naposledy, by se spustila pouze tentokrát a ne celá třída JUnit.
- Scénář 2 :Zatímco jste spustili celá třída dříve, Spustit -> Spustit by znovu spustit celý soubor třídy.
Nyní, když víme, že Run-> Run spustí test, který jste spustili jako poslední, nás přivádí k a otázka pokud můžete změnit předvolby možnosti Spustit -> Spustit?
Odpověď na otázku je Ano, předvolby možnosti Spustit -> Spustit lze změnit. K Run-> Run je připojena určitá konfigurace.
Můžete to udělat takto:
na) Nastavení běhu Eclipse je v zásadě výchozí spusťte vybraný zdroj nebo aktivní editor, pokud je spustitelný .
Co tedy dělá výchozí nastavení - „Spustit vybraný zdroj nebo aktivní editor, pokud je spustitelný“?
Odpověď na to je, že nespustí aplikaci, kterou jste spustili jako poslední, ale bude následovat opakování poslední spuštěné aplikace pro aktivní editor .
b) Jak tedy změníte výchozí předvolbu?
Odpověď na to je, že můžete změnit výchozí předvolbu v Eclipse, aby se spustila poslední spuštěná aplikace bez ohledu na aktivního editora ty máš.
Níže je uvedeno, jak změníte předvolbu možnosti Spustit pomocí příkazu Spustit -> Spustit:
- Navigovat do Windows => Předvolby => Spustit / Debug => Spuštění
- Funkce „Spustit operaci“ má výchozí přepínač - '' Spusťte dříve spuštěnou aplikaci “ vybráno v rámci druhé možnosti „ Spusťte vybraný zdroj nebo aktivní editor. Pokud nelze spustit : „.
- Možná budete muset změnit tuto předvolbu na první přepínač, tj. '' Vždy spusťte dříve spuštěnou aplikaci. “
# 3) Spusťte pomocí klávesových zkratek
Soubor třídy můžete vybrat ze zobrazení Skript nebo Průzkumník balíčků a pomocí níže uvedených klávesových zkratek provedete testy JUnit:
- Stiskněte klávesy ALT + SHIFT + X, T za účelem spuštění souboru třídy JUnit.
- Alternativou k tomu by byl tisk ALT + R a poté CTRL + F11 spustit soubor třídy JUnit. ALT + R a poté CTRL + F11 je zkratka pro volbu nabídky Spustit -> Spustit
# 4) Spusťte pouze jednu zkušební metodu ve třídě
Někdy možná budete chtít spustit jednu testovací metodu JUnit.
V případě, že je v souboru třídy JUnit více než jedna metoda:
- V zobrazení skriptu můžete vybrat nebo umístit kurzor na název metody.
- Použijte buď klávesové zkratky uvedené výše, nebo výše uvedené možnosti k provedení pouze metody, kterou jste právě vybrali.
Poznámka: ALT + SHIFT + X, T může spustit vybrané metody podle očekávání. Pokud však chcete spustit konkrétní metodu ve třídě JUnit, musí to být testovací případ anotovaný pomocí @Test, jinak se zobrazí chyba inicializace.
Jinými slovy, pokud vyberete metody pod @Before nebo @After (jakákoli anotace jiná než @Test), pak by provedení konkrétní metody došlo k chybě.
# 5) Spusťte testy JUnit z příkazového řádku
Stejně jako spouštíte jakékoli soubory třídy Java prostřednictvím příkazového řádku, můžete také kompilovat a spouštět soubory třídy JUnit prostřednictvím příkazového řádku.
Níže pokryjeme níže uvedená podtémata, abychom pochopili, jak můžeme spustit testy JUnit prostřednictvím příkazového řádku:
- Jak sestavit test JUnit v příkazovém řádku?
- Jak spustit test JUnit v příkazovém řádku?
- Další informace o spuštění příkazového řádku.
- Jak opravit nerozpoznanou chybu příkazu pro příkaz javac?
- Výhody spouštění testů pomocí příkazového řádku.
# 5.1) Jak sestavit test JUnit v příkazovém řádku?
Předpokladem pro kompilaci a spuštění souboru třídy JUnit prostřednictvím příkazového řádku je:
- Nejprve přidejte příslušné soubory JUnit jar do cesty ke třídě.
- Nastavit proměnné prostředí, jak bylo uvedeno v SetUp of JUnit tutorial.
- Poté zkompilujte soubor třídy JUnit.
- Syntaxe pro kompilaci souboru třídy JUnit prostřednictvím příkazového řádku je:
javac -cp junit-4.0.0.jar;. JUnitProgram.java
Zde je javac kompilátorem Java, který používá volbu -cp.
Příkaz javac -cp hledá následující parametry:
- Za souborem JUnit jar následuje středník.
- Cesta k adresáři, ve kterém existuje zdrojový soubor.
- Název souboru třídy
Co ve výše uvedené syntaxi znamená tečka (.)?
Zmínili jsme tečku na místě celé cesty k adresáři.
Tečka znamená, že:
- Classpath již obsahuje aktuální adresář pro zdrojové soubory Java.
- JVM (Java Virtual Machine) automaticky předpokládá, že aktuální adresář je umístěn tam, kde jsou umístěny zdrojové soubory.
- JVM tam poté vyhledá název zmíněného souboru JUnit. Název souboru je poslední parametr uvedený v příkazu kompilace.
Můžete zkontrolovat parametry, které vstupují do -cp, pomocí následujících kroků:
- Otevřete příkazový řádek.
- Zadejte javac a stiskněte klávesu ENTER.
- Zobrazí se všechny relevantní možnosti včetně -cp. Zjistíte, že -cp jde jako parametr, kde cesta je cesta k souborům třídy, kterou JVM hledá.
Screenshot níže:
Jak sestavit více souborů najednou?
Lze sestavit více testovacích souborů JUnit najednou oddělením názvů souborů mezerami.
Níže je uveden příklad, kde kompilujete java soubory JUnitProgram a demoTest:
javac -cp junit-4.0.0.jar;. JUnitProgram.java demoTest.java
# 5.2) Jak spustit test JUnit z příkazového řádku?
Stejně jako javac se podobně používá i kompilátor Java java -cp se používá ke spouštění souborů tříd Java včetně tříd JUnit.
Níže je uvedena syntaxe, kterou můžete sledovat:
java -cp junit-4.0.0.jar;. JUnitProgram demoTest
Tento příkaz spustí oba soubory JUnitProgram.java a demoTest.java jeden po druhém.
# 5.3) Další informace o „provádění příkazového řádku“.
jak implementovat binární vyhledávací strom v javě
Zde je několik dalších informací o jak opravit chybu pomocí příkazu javac a proč použít možnost spuštění příkazového řádku
# 5.3.1) Jak opravím chybu nerozpoznaného příkazu pro příkaz javac?
Většina z nás by se s tímto problémem setkala při pokusu o provedení javac příkaz přes příkazový řádek. To se stalo i mně; tak jsme si mysleli, že to tady napíšeme.
na) Zadali jsme příkaz javac a stisknuto Enter na příkazovém řádku.
b) Chybová zpráva - javac není rozpoznán jako interní nebo externí příkaz, operativní program nebo dávkový soubor objevil se níže:
Zde začíná vaše kompilace souborů třídy Java z příkazového řádku. Tato chyba tedy skutečně vzbuzuje obavy a nelze ji ignorovat.
Chcete-li problém vyřešit, postupujte podle následujících kroků a Tady je!!! vidíte, že chyba je pryč:
- Ukažme si tento proces pomocí základního souboru Java. Prvním krokem, který můžete udělat, je vytvoření základní třídy Java Např. : „Calculator.java“
- Vyhledáme Calculate.java z Průzkumníka Windows a cestu zkopírujeme.
- Změňte adresář v příkazovém řádku na cestu, kterou jste zkopírovali (cesta ke zdrojovému souboru). Pomocí cd změňte adresář.
- Nyní pomocí příkazu nastavte PATH do složky jdk bin.
SET PATH = a stiskněte ENTER.
- Zde je cesta jdk C: Program Files Java jdk1.8.0_181 bin. Proto jsme podle toho nastavili cestu. Výsledek po stisknutí klávesy ENTER po příkazu nic nezobrazí.
- Nyní ověřte, zda JVM příkaz rozpozná javac zadáním příkazu javac a stisknutím klávesy ENTER.
-
- Pokud příkaz rozpozná, zobrazí se jako výsledná sada platných voleb pro javac.
- Jinak se chyba znovu zobrazí.
Níže je uveden snímek obrazovky ukazující, že jsme se chyby úspěšně zbavili.
Nezkoušejme zde uniknout zásadní otázce:
Proč JVM rozpoznal příkaz javac po nastavení cesty ke složce jdk bin?
Jsme si jisti, že tuto otázku budete mít také na mysli. Níže je uvedena odpověď.
- Složka jdk bin má všechny knihovny pro příkaz javac. Proto je důvod, proč když odpovídajícím způsobem nastavíte cestu, je JVM nyní schopen bez problémů rozpoznat příkaz javac.
- Viz složka javac pod košem jdk na obrázku níže.
- Potom můžete pomocí příkazového řádku spustit příkaz „Java compile and run“. Kromě toho také nezapomeňte vhodně nastavit proměnnou CLASSPATH. Proměnné JAVA_HOME a JUNIT_HOME pro soubory Java a JUnit.
# 5.3.2) Výhoda spuštění testů pomocí příkazového řádku:
Pojďme rychle diskutovat o výhodě oproti spuštění testovacích kufrů Java / JUnit prostřednictvím příkazového řádku.
Jak již víte, neexistuje žádné tvrdé a rychlé pravidlo pro provádění souborů třídy, které procházejí příkazovým řádkem. Je to jen alternativní způsob, jak můžete spravovat kompilaci a provádění souborů třídy.
Pokud se zeptáte, zda má know-how o provádění testů JUnit prostřednictvím příkazového řádku zvláštní výhodu, řekli bychom „Určitě ano“.
Důvod „Ano“ je uveden níže:
- Všechny tyto série kroků, které jsme provedli výše; lze přidat do poznámkového bloku a převést na dávkový soubor.
- Když nyní spustíte tento dávkový soubor dvojitým kliknutím, může to spustit kompilaci a provedení více testovacích souborů JUnit pojmenovaných v dávkovém souboru.
Jaké jsou výhody dávkového souboru při kompilaci a provádění souborů Java?
- Dávkový / jarní soubor může fungovat jako uživatelsky přívětivý nástroj, který může umožnit komukoli, kdo si neuvědomuje vnitřní logiku kódu, a velmi snadno provádět několik testovacích případů.
- To může eliminovat potřebu mít specializovaného vývojáře nebo QA k provádění těchto úloh provádění testů. Úlohu spuštění lze delegovat na jakýkoli prostředek, aniž by se obtěžoval omezeními dovedností.
V další alternativní možnosti uvidíme další výhodný a chvályhodný způsob provádění našich testovacích případů JUnit.
# 6) Spusťte testovací sadu pomocí třídy Testrunner
Ve scénářích v reálném čase je nejméně preferovanou možností provádění jednoho testovacího případu.
- Máme případy, kdy musíme spustit skupinu souvisejících / nesouvisejících testovacích případů.
- Například budeme možná muset vytvořit a spustit sady regresních testů nebo sady kouřových testů.
Nyní se dozvíme o implementaci různých anotací použitých k vytvoření testovacích sad a spuštění sady.
Celkový proces provádění testovací sady pomocí nástroje Test Runner je podle níže uvedeného pracovního postupu:
- Vytvořte JUnit třídy 1, JUnit třídy 2,…. JUnit třída č.
- Vytvořte soubor třídy testovací sady, který seskupí testovací případy.
- Vytvořte soubor třídy Testrunner pro vyvolání vytvořené testovací sady.
- Spusťte třídu Testrunner.
Struktura programů, jejichž prostřednictvím ukážeme vytvoření testovací sady a spuštění souboru běžce, je zobrazena na následujícím obrázku:
Zde se budeme zabývat dílčími tématy:
- Vytváření tříd JUnit
- Vytváření testovacích sad
- Vytvoření souboru Testrunner a provedení testovacích sad s jeho použitím.
- Další informace o fungování anotace @RunWith.
6.1) Vytváření tříd JUnit
Začněme vytvořením dvou jednoduchých souborů třídy JUnit:
- JUnitTestCase1.java - Zahrnuje kód pro ověření očekávané číselné hodnoty - proměnné Hodnota1 odpovídá skutečné hodnotě proměnné Hodnota2.
- JUnitTestCase2.java - Zahrnuje kód pro ověření, zda je očekávaná proměnná řetězce strValue a aktuální proměnná řetězce strActual zápasy.
Jedná se v zásadě o dva testovací případy, které se pokusíme dostat do logické skupiny zvané testovací sada a nechat ji běžet jeden po druhém.
Kód pro JUnitTestCase1.java
package demo.tests; import static org.junit.Assert.*; import java.util.*; import java.lang.String; import static org.testng.Assert.assertTrue; import org.junit.Before; import org.junit.Test; import junit.framework.Assert; public class JUnitTestCase1 { public int Value1=6000; @Test public void junitMethod1(){ int Value2=9000; Assert.assertEquals(Value1, Value2); } }
Kód pro JUnitTestCase2.java
package demo.tests; import static org.junit.Assert.*; import java.util.*; import java.lang.String; import static org.testng.Assert.assertTrue; import org.junit.Before; import org.junit.Test; import junit.framework.Assert; public class JUnitTestCase2 { public String stringValue='JUnit'; @Test public void junitMethod2(){ String strActual='Junit1'; Assert.assertSame(stringValue, strActual); } }
6.2) Vytváření testovací sady:
Tato část a další část hrají významnou roli v celém procesu vytváření a spouštění testovací sady. V této části se pokusíme porozumět jak seskupit více testovacích tříd JUnit a spojit je do testovací sady .
Podle výše uvedeného strukturního obrázku vytvořme testovací sadu seskupující JUnitTestCase1.java a JUnitTestCase2.java a pojmenujme sadu jako JUnitTestSuite.java
Dvě poznámky, které nám pomáhají dosáhnout vytvoření testovací sady, jsou:
- @RunWith a
- @SuiteClasses
Balíčky potřebné pro anotace:
- Budete muset importovat balíček org.junit.runner.RunWith; pro zahrnutí anotace @RunWith.
- K fungování budete potřebovat balíček org.junit.runners.Suite.SuiteClasses pro @SuiteClasses.
- Kromě toho budete také muset importovat balíček org.junit.runners.Suite pro předání parametru Suite.class do anotace @RunWith.
Pojďme se podívat na kód pro lepší pochopení !!
Kód pro JUnitTestSuite.java
package demo.tests; import static org.junit.Assert.*; import org.junit.After; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.junit.runners.Suite.SuiteClasses; @RunWith(Suite.class) @SuiteClasses({JUnitTestCase1.class, JUnitTestCase2.class }) public class JUnitTestSuite { @BeforeClass public static void printMe() { System.out.println('JUnitTestSuite is the test suite grouping testcase 1 and testcase 2'); } }
Porozumění kódu pro JUnitTestSuite.java:
- @RunWith pomáhá JVM pochopit, jaký druh třídy běžců by měl běžet Např. Suite.class nebo Cucumber.class
- Zde je parametr @RunWith Suite.class . Pomáhá JVM rozpoznat, že aktuální soubor, kde se používá @RunWith (Suite.class), hraje roli v Test Suite.
- Názvy testovacích tříd JUnit, které mají být svázány dohromady v sadě, musí být předány jako řetězcové pole ve formě parametrů pro @SuiteClasses oddělené čárkou.
- To umožňuje JVM vědět, které jsou všechny testovací případy, které je třeba seskupit pod sadu.
- Název sady bude název souboru třídy JUnit, který je anotován pomocí @RunWith a @SuiteClasses, což je v tomto případě JUnitTestSuite.
6.3) Vytvořte soubor Test Runner a spusťte sadu JUnit Test Suite pomocí nástroje Test Runner
Poslední krok nám pomůže spustit testovací sadu, kterou jsme právě vytvořili ve výše uvedené části pomocí souboru Testrunner.
- Nyní vytvoříme soubor Java s názvem SuiteRunnerFile.
- Tato SuiteRunnerFile.java není třída JUnit, ale obvyklý soubor Java s hlavní metodou.
Podívejme se na kód a pokusme se mu porozumět.
Kód pro SuiteRunnerFile.java
package demo.tests; import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure; public class SuiteRunnerFile { public static void main(String args()) { Result result=JUnitCore.runClasses(JUnitTestSuite.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } } }
Balíčky potřebné pro anotaci
- Chcete-li zahrnout balíček, musíte importovat balíček org.junit.runner.JunitCore JUnitCore třída v kódu.
- Musíte importovat balíček org.junit.runner.notification.Failure a org.junit.runner. Výsledek, který do kódu zahrne poruchu a třídu výsledků.
Porozumění kódu pro SuiteRunnerFile.java
- Aby bylo možné vytvořit soubor běžce pro provedení testovací sady, JUnitCore třída hraje významnou roli.
- The runClasses () metoda JUnitCore třída bere jako vstupní parametr název třídy testovací sady, proto máme příkaz JUnitCore. runClasses (JUnitTestSuite. třída ).
- Návratový typ tohoto příkazu je Výsledek objekt třídy, který ukládá výsledný stav úspěchu a stavu selhání každého ze souborů testovacích případů; po spuštění. To je důvod, proč máme výsledek jako Výsledek objekt třídy v kódu.
- Potom vytiskneme selhání testovacích případů, pokud existují. Stejně jako metodu getFailures () můžete také získat počet selhání a počet spuštění pomocí metody getFailureCount () a getRunCount ().
- Nyní je SuiteRunnerFile připraven ke spuštění,
- Vyberte soubor z Průzkumníka balíků a
- Klikněte pravým tlačítkem a vyberte Spustit jako -> Java, program se spustí.
Níže je uveden snímek obrazovky okna konzoly.
Vysvětlení výsledků na konzole:
Konzole výše ukazuje, že:
- Soubor třídy JUnitTestSuite byl spuštěn prostřednictvím SuiteRunnerFile.
- Nejprve byla provedena metoda printMe () pod anotací @BeforeClass a
- Potom se testovací případy v testovací sadě prováděly jeden po druhém. Takto lze testovací sadu vytvořit a spustit jako balíček.
6.4) Další informace - Jak funguje @RunWith?
- @RunWith je JUnit API, které v zásadě bere jako vstupní parametr pouze jeden prvek, kterým je název souboru třídy běžec.
- Rámec JUnit vyvolá zadanou třídu jako testovací běžec.
Níže uvedený úryvek z RunWith.java vám pomůže pochopit:
@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) @Inherited public @interface RunWith { Class Extends Runner> value(); }
Porozumění výše uvedenému kódu rozhraní RunWith:
- Zadaný hodnota prvek musí být odvozenou třídou Běžec třída . Zde se používá koncept reflexe.
- Velmi dobrý příklad takové třídy běžec je již implementován v našem kódu, tj. @RunWith (Suite.class), kde je skupina testcases svázána dohromady, aby vytvořila testovací sadu.
- Podobně dalším dobrým příkladem použití třídy Runner s @RunWith může být @RunWith (Cucumber.class), což je obchodní vývojový rámec (BDD) pro automatizaci testů pomocí selenu v Javě. To pomáhá rámci spustit testovací případy založené na okurce.
Poznámka:
- Anotace a parametry použité k vytvoření a spuštění testovací sady JUnit v tomto kurzu byly specifické pro JUnit 4.
- Existuje trochu jiný způsob, jak vytvořit JUnit Test Suite a spustit soubor běžce v JUnit 5.
V nadcházejících cvičeních budeme mít soustředěné pochopení všech aspektů JUnit 4 vs JUnit 5 brzy.
# 7) Spusťte testovací případy JUnit pomocí Maven
Můžete také mít projekt Maven skládající se z testů JUnit a spustit testy prostřednictvím Maven, který bude popsán v samostatném kurzu.
Závěr
- Naučili jsme se všechny různé možnosti pro spuštění testů JUnit - jednotlivé testy i více testů seskupených do testovacích sad.
- Získali jsme další znalosti o tom, jak aktualizovat předvolbu možnosti Spustit, jak opravit chybu javac a jak nám může pomoci spuštění příkazového řádku.
- Kromě toho jsme se také dozvěděli, jak funguje anotace @RunWith.
V nadcházejících výukových programech je tedy ještě co sledovat. „Stand by“ do té doby !!!
=> Navštivte zde a dozvíte se JUnit od nuly.
Doporučené čtení
- Testy JUnit: Jak psát testovací případy JUnit s příklady
- Výukový program JUnit pro začátečníky - Co je testování JUnit
- Co je testovací přípravek JUnit: Výukový program s příklady JUnit 4
- Hlášení Specflow: Jak generovat protokoly o zkouškách a provádět selektivní testy
- Stahujte, instalujte a konfigurujte JUnit v Eclipse
- Úvod do rámce JUnit a jeho použití v selenovém skriptu - výuka selenu č. 11
- Vytvořte testy Appium pro aplikaci pro Android
- Vložte více dokumentů do MongoDB pomocí polí