SlideShare a Scribd company logo
TDD Nunit i NUnitForms
19.04.2013
2
NUnit
 http://www.nunit.org/
 Framework per test unitari per llenguatge .NET
 Actualment versió 2.6.2 (Octubre 2012)
 Afegir al projecte referència nunit.framework.dll
3
NUnit
 Tests unitaris:
 Proven la correcta funcionalitat d’una classe
 Tests integració:
 Proven la correcta integració amb els recursos externs:
base de dades, serveis web, APIs, etc
 Tests acceptació:
 Proven que el software fa el que desitja l’usuari
4
NUnit
 Cada classe del projecte hauria de tenir la seva
classe de test
 Cada mètode o funció pública hauria de tenir el
seu mètode de test
 Quan falla un test unitari sabem ràpidament on
és l’error i el podem solucionar
5
NUnit
 Classe de test importa Nunit.Framework
 Davant la definició de la classe atribut <TestFixture()>
 Sol tenir una funció SetUp que s’executa abans de
cada test (ex: es creen taules a la base de dades i
s’inserten dades de test). Es marca amb <SetUp()>
 Sol tenir una funció TearDown que s’executa després
de cada test (ex: se’liminen les taules). <TearDown()>
 Els mètodes de test no reben paràmetres i no retornen
res. Es marquen amb atribut <Test()>
 Atributs: http://www.nunit.org/index.php?
p=attributes&r=2.6.2
6
NUnit
 Dins dels tests es tracta de fer comprovacions: Asserts
 Assert.AreEqual, Assert.AreNotEqual
 Assert.True, Assert.False
 Assert.IsNull, Assert.IsNotNull
 Assert.Greater, Assert.Less
 Assert.IsInstanceOfType, Assert.IsNotInstanceOfType
 Assert.Throws, Assert.DoesNotThrow
 ...
 http://www.nunit.org/index.php?p=assertions&r=2.6.2
7
NUnit
8
NUnit
 Els test els pot executar la consola nunit-console.exe
 En un CMD o dins del Visual Studio – Herramientas -
nUnit
9
NUnit
 Els test els pot executar la interfície Nunit
10
NUnit
11
NUnit
 L’execució pot treure un XML de sortida amb tot de
detalls dels tests que passen i els que NO
12
NUnit
 Beneficis:
 Ens obliga a fer el codi millor
 No hem de debugar tan com abans
 Seguretat alhora de fer canvis
 Serveix per documentar les funcionalitats fetes
 Ajuda a trobar errors estranys que mai
haguessis trobat
Tests nunit nunitforms
14
NUnitForms
 http://nunitforms.sourceforge.net/
 Extensió Nunit per test d’acceptació per aplicacions
amb Windows Forms
 Actualment versió 2.0 alpha (Maig 2006)
 Afegir al projecte referència NUnitForms.dll
 Alerta: La documentació de la web està obsoleta !!!
Buscar la API documentation que s’instal·la !!!
 Pujat codi: http://svn.dtvc.local/EDEV/Components/NUNitForms/trunk
 Mirar els test com a documentació !!
15
NUnitForms
 Importar NUnit.Extensions.Forms
 Funciona per classes anomenades Testers que
hereden de la classe mare ControlTester
 ButtonTester
 TextBoxTester
 FormTester
 TreeViewTester
 ToolStripButtonTester
 ...
16
NUnitForms
 Del ControlTester podem:
 Fer clic, mètode Click()
 Invocar qualsevol mètode Invoke(methodName, args)
 Disparar qualsevol event FireEvent(eventName, args)
 Accedir a qualsevol propietat mitjançant
nomObjecte(“nomPropietat”)
 Els controls específics ens ho posen més fàcil encara:
 TextBoxTester.Enter(String)
 TreeViewTester.SelectNode(params)
 ...
17
NUnitForms
18
NUnitForms
 Drags and drops:
 A través de disparar events amb els arguments adequats
19
NUnitForms
Podem control·lar el ratolí ?
 Si, amb el MouseController
 Position: gets o sets mouse position
 Click
 DoubleClick
 Press
 Release
 Hover
Però, no m’ha funcionat molt bé, caldria veure els tests !!
20
NUnitForms
Podem control·lar el teclat ?
 Si, amb el KeyboardController
 Funciona molt bé el Type(KeyString)
 KeyString pot ser:
 ^ significa CONTROL
 ex: kc.Type(“^a”) = Copiar
 {BACKSPACE} = esborrar
 {ENTER} = return
 http://msdn.microsoft.com/en-
us/library/system.windows.forms.sendkeys.send.aspx
21
NUnitForms
Podem esperar formularis modals ?
DEMO
23
Conclusions
24
Conclusions
 Imprescindible per nous projectes:
 Tests unitaris, integració i acceptació
 Molta feina per projectes ja existents
 EditoraTickers324: 7dies de feina !!
 Mínim fer tests acceptació noves
funcionalitats
 Recompensa, val la pena 
 Objectiu: Aconseguir fer el test primer
Tests nunit nunitforms

More Related Content

PDF
Messi
ODP
How to Bring Together Local Citizen Media Videos and Global Audiences
PPTX
SprinxCRM for Google Apps
PPTX
Konfigurace frameworku Oak v Piranha CMS Oak
PDF
Co to je kontext úkolu
PPTX
Konfigurace redakčního systému Piranha CMS Oak
PDF
Jak si založit účet v Producteev
PDF
Co je to projekt
Messi
How to Bring Together Local Citizen Media Videos and Global Audiences
SprinxCRM for Google Apps
Konfigurace frameworku Oak v Piranha CMS Oak
Co to je kontext úkolu
Konfigurace redakčního systému Piranha CMS Oak
Jak si založit účet v Producteev
Co je to projekt

Similar to Tests nunit nunitforms (20)

PPTX
UD3 Programació
PDF
Resum
PPT
Rocio powerpoint,
PPT
Presentació power point
PPT
Rocio powerpoint,
PPT
Introducció a windows xp abtissam salhi
PPT
Introducció a windows xp abtissam salhi
PPT
Introducció a windows xp abtissam salhi
PPT
Introducció a windows xp abtissam salhi
PDF
Aplicacions Interactives multiplataforma_pac3
PPT
Rocio powerpoint,
PPT
Raul poyato
PPT
carolina y carla 4d
PDF
1213 Threads [2] Programació concurrent
PPT
1 introduccio a windows xp wuidad
PDF
Proves de Software (en Java amb JUnit)
ODT
MorilloLaura_P01_gestorincidenciesocs
ODT
Pujante aaron 01_gestorincidenciesocs
PPT
Uf3 sistemes operatius lliures
PPT
Uf3 sistemes operatius lliures
UD3 Programació
Resum
Rocio powerpoint,
Presentació power point
Rocio powerpoint,
Introducció a windows xp abtissam salhi
Introducció a windows xp abtissam salhi
Introducció a windows xp abtissam salhi
Introducció a windows xp abtissam salhi
Aplicacions Interactives multiplataforma_pac3
Rocio powerpoint,
Raul poyato
carolina y carla 4d
1213 Threads [2] Programació concurrent
1 introduccio a windows xp wuidad
Proves de Software (en Java amb JUnit)
MorilloLaura_P01_gestorincidenciesocs
Pujante aaron 01_gestorincidenciesocs
Uf3 sistemes operatius lliures
Uf3 sistemes operatius lliures
Ad

Tests nunit nunitforms

  • 1. TDD Nunit i NUnitForms 19.04.2013
  • 2. 2 NUnit  http://www.nunit.org/  Framework per test unitari per llenguatge .NET  Actualment versió 2.6.2 (Octubre 2012)  Afegir al projecte referència nunit.framework.dll
  • 3. 3 NUnit  Tests unitaris:  Proven la correcta funcionalitat d’una classe  Tests integració:  Proven la correcta integració amb els recursos externs: base de dades, serveis web, APIs, etc  Tests acceptació:  Proven que el software fa el que desitja l’usuari
  • 4. 4 NUnit  Cada classe del projecte hauria de tenir la seva classe de test  Cada mètode o funció pública hauria de tenir el seu mètode de test  Quan falla un test unitari sabem ràpidament on és l’error i el podem solucionar
  • 5. 5 NUnit  Classe de test importa Nunit.Framework  Davant la definició de la classe atribut <TestFixture()>  Sol tenir una funció SetUp que s’executa abans de cada test (ex: es creen taules a la base de dades i s’inserten dades de test). Es marca amb <SetUp()>  Sol tenir una funció TearDown que s’executa després de cada test (ex: se’liminen les taules). <TearDown()>  Els mètodes de test no reben paràmetres i no retornen res. Es marquen amb atribut <Test()>  Atributs: http://www.nunit.org/index.php? p=attributes&r=2.6.2
  • 6. 6 NUnit  Dins dels tests es tracta de fer comprovacions: Asserts  Assert.AreEqual, Assert.AreNotEqual  Assert.True, Assert.False  Assert.IsNull, Assert.IsNotNull  Assert.Greater, Assert.Less  Assert.IsInstanceOfType, Assert.IsNotInstanceOfType  Assert.Throws, Assert.DoesNotThrow  ...  http://www.nunit.org/index.php?p=assertions&r=2.6.2
  • 8. 8 NUnit  Els test els pot executar la consola nunit-console.exe  En un CMD o dins del Visual Studio – Herramientas - nUnit
  • 9. 9 NUnit  Els test els pot executar la interfície Nunit
  • 11. 11 NUnit  L’execució pot treure un XML de sortida amb tot de detalls dels tests que passen i els que NO
  • 12. 12 NUnit  Beneficis:  Ens obliga a fer el codi millor  No hem de debugar tan com abans  Seguretat alhora de fer canvis  Serveix per documentar les funcionalitats fetes  Ajuda a trobar errors estranys que mai haguessis trobat
  • 14. 14 NUnitForms  http://nunitforms.sourceforge.net/  Extensió Nunit per test d’acceptació per aplicacions amb Windows Forms  Actualment versió 2.0 alpha (Maig 2006)  Afegir al projecte referència NUnitForms.dll  Alerta: La documentació de la web està obsoleta !!! Buscar la API documentation que s’instal·la !!!  Pujat codi: http://svn.dtvc.local/EDEV/Components/NUNitForms/trunk  Mirar els test com a documentació !!
  • 15. 15 NUnitForms  Importar NUnit.Extensions.Forms  Funciona per classes anomenades Testers que hereden de la classe mare ControlTester  ButtonTester  TextBoxTester  FormTester  TreeViewTester  ToolStripButtonTester  ...
  • 16. 16 NUnitForms  Del ControlTester podem:  Fer clic, mètode Click()  Invocar qualsevol mètode Invoke(methodName, args)  Disparar qualsevol event FireEvent(eventName, args)  Accedir a qualsevol propietat mitjançant nomObjecte(“nomPropietat”)  Els controls específics ens ho posen més fàcil encara:  TextBoxTester.Enter(String)  TreeViewTester.SelectNode(params)  ...
  • 18. 18 NUnitForms  Drags and drops:  A través de disparar events amb els arguments adequats
  • 19. 19 NUnitForms Podem control·lar el ratolí ?  Si, amb el MouseController  Position: gets o sets mouse position  Click  DoubleClick  Press  Release  Hover Però, no m’ha funcionat molt bé, caldria veure els tests !!
  • 20. 20 NUnitForms Podem control·lar el teclat ?  Si, amb el KeyboardController  Funciona molt bé el Type(KeyString)  KeyString pot ser:  ^ significa CONTROL  ex: kc.Type(“^a”) = Copiar  {BACKSPACE} = esborrar  {ENTER} = return  http://msdn.microsoft.com/en- us/library/system.windows.forms.sendkeys.send.aspx
  • 22. DEMO
  • 24. 24 Conclusions  Imprescindible per nous projectes:  Tests unitaris, integració i acceptació  Molta feina per projectes ja existents  EditoraTickers324: 7dies de feina !!  Mínim fer tests acceptació noves funcionalitats  Recompensa, val la pena   Objectiu: Aconseguir fer el test primer