SlideShare uma empresa Scribd logo
1 de 25
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
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

Mais conteúdo relacionado

Semelhante a Tests nunit nunitforms

Resum
ResumResum
Resumcfgmi
 
Rocio powerpoint,
Rocio powerpoint,Rocio powerpoint,
Rocio powerpoint,rocio4c
 
Rocio powerpoint,
Rocio powerpoint,Rocio powerpoint,
Rocio powerpoint,rocio4c
 
Presentació power point
Presentació power pointPresentació power point
Presentació power pointrocio4c
 
Introducció a windows xp abtissam salhi
Introducció a windows xp abtissam salhiIntroducció a windows xp abtissam salhi
Introducció a windows xp abtissam salhiabtissam
 
Introducció a windows xp abtissam salhi
Introducció a windows xp abtissam salhiIntroducció a windows xp abtissam salhi
Introducció a windows xp abtissam salhiabtissam
 
Introducció a windows xp abtissam salhi
Introducció a windows xp abtissam salhiIntroducció a windows xp abtissam salhi
Introducció a windows xp abtissam salhiabtissam
 
Introducció a windows xp abtissam salhi
Introducció a windows xp abtissam salhiIntroducció a windows xp abtissam salhi
Introducció a windows xp abtissam salhisallhi
 
Aplicacions Interactives multiplataforma_pac3
Aplicacions Interactives multiplataforma_pac3Aplicacions Interactives multiplataforma_pac3
Aplicacions Interactives multiplataforma_pac3Marcos Baldovi
 
Rocio powerpoint,
Rocio powerpoint,Rocio powerpoint,
Rocio powerpoint,rocio4c
 
carolina y carla 4d
carolina y carla 4dcarolina y carla 4d
carolina y carla 4dvainilla94
 
1213 Threads [2] Programació concurrent
1213 Threads [2] Programació concurrent1213 Threads [2] Programació concurrent
1213 Threads [2] Programació concurrentOriol Torres
 
1 introduccio a windows xp wuidad
1 introduccio a windows xp wuidad1 introduccio a windows xp wuidad
1 introduccio a windows xp wuidadAYOUB111
 
Proves de Software (en Java amb JUnit)
Proves de Software (en Java amb JUnit)Proves de Software (en Java amb JUnit)
Proves de Software (en Java amb JUnit)Juan-Manuel Gimeno
 
MorilloLaura_P01_gestorincidenciesocs
MorilloLaura_P01_gestorincidenciesocsMorilloLaura_P01_gestorincidenciesocs
MorilloLaura_P01_gestorincidenciesocslauramorillosegarra
 
Pujante aaron 01_gestorincidenciesocs
Pujante aaron 01_gestorincidenciesocsPujante aaron 01_gestorincidenciesocs
Pujante aaron 01_gestorincidenciesocsAaron Pujante
 

Semelhante a Tests nunit nunitforms (20)

UD3 Programació
UD3 ProgramacióUD3 Programació
UD3 Programació
 
Resum
ResumResum
Resum
 
Rocio powerpoint,
Rocio powerpoint,Rocio powerpoint,
Rocio powerpoint,
 
Rocio powerpoint,
Rocio powerpoint,Rocio powerpoint,
Rocio powerpoint,
 
Presentació power point
Presentació power pointPresentació power point
Presentació power point
 
Introducció a windows xp abtissam salhi
Introducció a windows xp abtissam salhiIntroducció a windows xp abtissam salhi
Introducció a windows xp abtissam salhi
 
Introducció a windows xp abtissam salhi
Introducció a windows xp abtissam salhiIntroducció a windows xp abtissam salhi
Introducció a windows xp abtissam salhi
 
Introducció a windows xp abtissam salhi
Introducció a windows xp abtissam salhiIntroducció a windows xp abtissam salhi
Introducció a windows xp abtissam salhi
 
Introducció a windows xp abtissam salhi
Introducció a windows xp abtissam salhiIntroducció a windows xp abtissam salhi
Introducció a windows xp abtissam salhi
 
Aplicacions Interactives multiplataforma_pac3
Aplicacions Interactives multiplataforma_pac3Aplicacions Interactives multiplataforma_pac3
Aplicacions Interactives multiplataforma_pac3
 
Rocio powerpoint,
Rocio powerpoint,Rocio powerpoint,
Rocio powerpoint,
 
Raul poyato
Raul poyatoRaul poyato
Raul poyato
 
carolina y carla 4d
carolina y carla 4dcarolina y carla 4d
carolina y carla 4d
 
1213 Threads [2] Programació concurrent
1213 Threads [2] Programació concurrent1213 Threads [2] Programació concurrent
1213 Threads [2] Programació concurrent
 
1 introduccio a windows xp wuidad
1 introduccio a windows xp wuidad1 introduccio a windows xp wuidad
1 introduccio a windows xp wuidad
 
Proves de Software (en Java amb JUnit)
Proves de Software (en Java amb JUnit)Proves de Software (en Java amb JUnit)
Proves de Software (en Java amb JUnit)
 
MorilloLaura_P01_gestorincidenciesocs
MorilloLaura_P01_gestorincidenciesocsMorilloLaura_P01_gestorincidenciesocs
MorilloLaura_P01_gestorincidenciesocs
 
Pujante aaron 01_gestorincidenciesocs
Pujante aaron 01_gestorincidenciesocsPujante aaron 01_gestorincidenciesocs
Pujante aaron 01_gestorincidenciesocs
 
Uf3 sistemes operatius lliures
Uf3 sistemes operatius lliuresUf3 sistemes operatius lliures
Uf3 sistemes operatius lliures
 
Uf3 sistemes operatius lliures
Uf3 sistemes operatius lliuresUf3 sistemes operatius lliures
Uf3 sistemes operatius lliures
 

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
  • 13.
  • 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