tests nunit nunitforms
DESCRIPTION
Explicació amb exemples de NUnit i NUnitFormsTRANSCRIPT
![Page 1: Tests nunit nunitforms](https://reader034.vdocuments.mx/reader034/viewer/2022052214/558d4a7ed8b42ac8108b46c3/html5/thumbnails/1.jpg)
TDD Nunit i NUnitForms
19.04.2013
![Page 2: Tests nunit nunitforms](https://reader034.vdocuments.mx/reader034/viewer/2022052214/558d4a7ed8b42ac8108b46c3/html5/thumbnails/2.jpg)
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
![Page 3: Tests nunit nunitforms](https://reader034.vdocuments.mx/reader034/viewer/2022052214/558d4a7ed8b42ac8108b46c3/html5/thumbnails/3.jpg)
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
![Page 4: Tests nunit nunitforms](https://reader034.vdocuments.mx/reader034/viewer/2022052214/558d4a7ed8b42ac8108b46c3/html5/thumbnails/4.jpg)
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
![Page 5: Tests nunit nunitforms](https://reader034.vdocuments.mx/reader034/viewer/2022052214/558d4a7ed8b42ac8108b46c3/html5/thumbnails/5.jpg)
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
![Page 6: Tests nunit nunitforms](https://reader034.vdocuments.mx/reader034/viewer/2022052214/558d4a7ed8b42ac8108b46c3/html5/thumbnails/6.jpg)
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
![Page 7: Tests nunit nunitforms](https://reader034.vdocuments.mx/reader034/viewer/2022052214/558d4a7ed8b42ac8108b46c3/html5/thumbnails/7.jpg)
7
NUnit
![Page 8: Tests nunit nunitforms](https://reader034.vdocuments.mx/reader034/viewer/2022052214/558d4a7ed8b42ac8108b46c3/html5/thumbnails/8.jpg)
8
NUnit
Els test els pot executar la consola nunit-console.exeEn un CMD o dins del Visual Studio – Herramientas -
nUnit
![Page 9: Tests nunit nunitforms](https://reader034.vdocuments.mx/reader034/viewer/2022052214/558d4a7ed8b42ac8108b46c3/html5/thumbnails/9.jpg)
9
NUnit
Els test els pot executar la interfície Nunit
![Page 10: Tests nunit nunitforms](https://reader034.vdocuments.mx/reader034/viewer/2022052214/558d4a7ed8b42ac8108b46c3/html5/thumbnails/10.jpg)
10
NUnit
![Page 11: Tests nunit nunitforms](https://reader034.vdocuments.mx/reader034/viewer/2022052214/558d4a7ed8b42ac8108b46c3/html5/thumbnails/11.jpg)
11
NUnit
L’execució pot treure un XML de sortida amb tot de detalls dels tests que passen i els que NO
![Page 12: Tests nunit nunitforms](https://reader034.vdocuments.mx/reader034/viewer/2022052214/558d4a7ed8b42ac8108b46c3/html5/thumbnails/12.jpg)
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
![Page 13: Tests nunit nunitforms](https://reader034.vdocuments.mx/reader034/viewer/2022052214/558d4a7ed8b42ac8108b46c3/html5/thumbnails/13.jpg)
![Page 14: Tests nunit nunitforms](https://reader034.vdocuments.mx/reader034/viewer/2022052214/558d4a7ed8b42ac8108b46c3/html5/thumbnails/14.jpg)
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ó !!
![Page 15: Tests nunit nunitforms](https://reader034.vdocuments.mx/reader034/viewer/2022052214/558d4a7ed8b42ac8108b46c3/html5/thumbnails/15.jpg)
15
NUnitForms
Importar NUnit.Extensions.Forms
Funciona per classes anomenades Testers que hereden de la classe mare ControlTester ButtonTester TextBoxTester FormTester TreeViewTester ToolStripButtonTester ...
![Page 16: Tests nunit nunitforms](https://reader034.vdocuments.mx/reader034/viewer/2022052214/558d4a7ed8b42ac8108b46c3/html5/thumbnails/16.jpg)
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) ...
![Page 17: Tests nunit nunitforms](https://reader034.vdocuments.mx/reader034/viewer/2022052214/558d4a7ed8b42ac8108b46c3/html5/thumbnails/17.jpg)
17
NUnitForms
![Page 18: Tests nunit nunitforms](https://reader034.vdocuments.mx/reader034/viewer/2022052214/558d4a7ed8b42ac8108b46c3/html5/thumbnails/18.jpg)
18
NUnitForms
Drags and drops: A través de disparar events amb els arguments adequats
![Page 19: Tests nunit nunitforms](https://reader034.vdocuments.mx/reader034/viewer/2022052214/558d4a7ed8b42ac8108b46c3/html5/thumbnails/19.jpg)
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 !!
![Page 20: Tests nunit nunitforms](https://reader034.vdocuments.mx/reader034/viewer/2022052214/558d4a7ed8b42ac8108b46c3/html5/thumbnails/20.jpg)
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
![Page 21: Tests nunit nunitforms](https://reader034.vdocuments.mx/reader034/viewer/2022052214/558d4a7ed8b42ac8108b46c3/html5/thumbnails/21.jpg)
21
NUnitForms
Podem esperar formularis modals ?
![Page 22: Tests nunit nunitforms](https://reader034.vdocuments.mx/reader034/viewer/2022052214/558d4a7ed8b42ac8108b46c3/html5/thumbnails/22.jpg)
DEMO
![Page 23: Tests nunit nunitforms](https://reader034.vdocuments.mx/reader034/viewer/2022052214/558d4a7ed8b42ac8108b46c3/html5/thumbnails/23.jpg)
23
Conclusions
![Page 24: Tests nunit nunitforms](https://reader034.vdocuments.mx/reader034/viewer/2022052214/558d4a7ed8b42ac8108b46c3/html5/thumbnails/24.jpg)
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
![Page 25: Tests nunit nunitforms](https://reader034.vdocuments.mx/reader034/viewer/2022052214/558d4a7ed8b42ac8108b46c3/html5/thumbnails/25.jpg)