Unit testování aplikace založené časovač?

hlasů
18

V současné době jsem psát jednoduché, časovač na bázi mini aplikace v jazyce C #, který provede akci n-krát každých K sekund.
Snažím se přijmout zkušební řízený styl vývoj, takže mým cílem je, aby jednotky test všechny části aplikace.

Takže moje otázka zní: Existuje nějaký dobrý způsob, jak jednotky test časovače třída bázi?

Problém, jak to vidím já, je, že existuje velké riziko, že testy budou trvat nepříjemně dlouho spustit, protože musí čekat tak a tak dlouho požadované akce se stane.
Zvlášť pokud někdo chce realistické údaje (v sekundách), namísto použití minimálního časového rozlišení, které umožňuje rámce (1 ms?).
Já používám falešný objektu pro akci, k registraci kolikrát akce byla nazvána, a tak, aby úkon byl proveden prakticky žádný čas.

Položena 15/08/2008 v 08:02
zdroj uživatelem
V jiných jazycích...                            


4 odpovědí

Odpovězeno 15/08/2008 v 22:01
zdroj uživatelem

hlasů
9

To, co jsem udělal, je zesměšňovat časovač, a také aktuální systémový čas, že moje události mohou být spuštěny okamžitě, ale pokud jde o kód zkoušeného šlo o čas, který uplynul byl sekund.

Odpovězeno 15/08/2008 v 08:43
zdroj uživatelem

hlasů
3

Myslím, že to, co budu dělat v tomto případě je test kód, který skutečně spustí, když je časovač klíšťata, spíše než celá sekvence. To, co opravdu potřebujeme rozhodnout, zda stojí za to pro vás otestovat skutečné chování aplikace (například, jestli to, co se stane po každé změně klíšťaty drasticky z jednoho klíštěte do druhého), nebo zda je dostatečná (tj žaloba je pokaždé stejný) jen testovat svou logiku.

Vzhledem k tomu, chování časovače je zaručeno, nikdy se nezmění, je to buď bude pracovat správně (tj jste nastavili to right) nebo ne; zdá se, že bude zbytečná snaha zahrnout, že v testu, pokud nemáte skutečně potřebují.

Odpovězeno 15/08/2008 v 08:09
zdroj uživatelem

hlasů
1

Souhlasím s Dannym do té míry, jak to asi dává smysl z jednotkové testování hlediska jednoduše zapomenout mechanismem časovače a jen ověřit, že akce sama o sobě funguje podle očekávání. Chtěl bych také říci, že nesouhlasím, že je to plýtvání úsilí, aby zahrnoval nastavení časovače v automatizované testovací sady nějakého druhu. Existuje mnoho případů, okrajové, pokud jde o práci s aplikacemi načasování a je to velmi snadné vytvořit falešný pocit bezpečí pouhým testováním věci, které lze snadno testovat.

Doporučil bych mít sadu testů, které se spouští časovač, stejně jako skutečné kroky. Tato sada bude chvíli spustit pravděpodobně trvat a pravděpodobně by to být něco, co by byl spuštěn po celou dobu v místním počítači. Ale stanovení těchto typů věcí až na noční automatizované sestavení může opravdu pomoci vymýtit chyby před tím, než se stal příliš těžké najít a opravit.

Takže ve zkratce moje odpověď na vaši otázku se nemusíte starat o psaní několik testů, které trvat dlouhou dobu. Jednotka test, co můžete udělat, a že testovací sada běží rychle a často, ale ujistěte se, doplnit, že integrační testy, které provozují méně často, ale pokrývají více aplikací a její konfiguraci.

Odpovězeno 15/08/2008 v 22:28
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more