SlideShare una empresa de Scribd logo
1 de 17
Junio 2020
Unit Tests con
Specflow + FakeXRMEasy
• Victor Sánchez
Víctor Sánchez
CRM Consultant Developer en Axazure
TWITTER: @victorsolaya
GITHUB: https://github.com/victorsolaya
WEBPAGE: https://www.victorsolaya.com
Por qué Unit Testing
• No hay muchos proyectos con Unit Testing
• Se confunden términos Unit Testing e Integration
Testing
• Mayor certeza de que el código funciona
• Se pueden “probar” registros de Producción con
nuestro código
• Es desarrollo puro y duro en nuestro lenguaje
favorito. Si eres Developer te encantará
Pero…A quien le gusta crear Tests
Solución
FakeXRMEasy
SpecFlow
• Ayuda a convertir
lenguaje nativo en
código
• Cualquiera puede
crear Unit Tests
incluso un consultor
funcional
SpecFlow
FakeXRMEasy
• Proyecto Open Source que permite automizar testing
especialmente para Dynamics
• Crea en memoria objectos mock
• Todos los servicios, metadatos, son creados en
memoria sin necesidad de estar online
• Provee de un OrganizationService para poder hacer
tests de plugins, workflow activities…
Unit Testing
NORMAL TESTING
• Arrange
• Act
• Assert
SPECFLOW LANGUAGE
• Given
• When
• Then
Qué haremos
1. Crearemos un proyecto para el plugin
2. Crearemos los archivos de Early Bound con
XRMToolbox
3. Comprobaremos funcionalidad en CRM
4. Instalaremos lo necesario para SpecFlow y
FakeXrmEasy
5. Crearemos proyecto de Unit Tests
6. Generaremos archivos necesarios para los Tests
7. Eso es todo!
Quick References
Specflow:
• Tools > Extensions and Updates -> Specflow for
Visual Studio 20xx
Quick References
Dependencias
• Install-Package Microsoft.CrmSdk.CoreAssemblies
• Install-Package SpecFlow
• Install-Package SpecFlow.NUnit
• Install-Package SpecFlow.Tools.MsBuild.Generation
• Install-Package FakeXrmEasy.9
• Install-Package NUnit.ConsoleRunner
• Install-Package NUnit3TestAdapter
Problema de ejemplo
Cada vez que se actualice la ciudad o el país de una
cuenta queremos actualizar todos los contactos
relacionados con esa ciudad y ese país
1. Se actualiza cuenta
2. Comprobar que se actualizan campos en contacto
3. Comprobar que contienen los datos esperados
Manos a la obra
¡Muchas gracias!
Github Saturday 2020
https://github.com/victorsolaya/saturday-madrid-2020

Más contenido relacionado

La actualidad más candente

Integración contínua con Jenkins
Integración contínua con JenkinsIntegración contínua con Jenkins
Integración contínua con JenkinsCésar Hernández
 
Desarrollo de Aplicaciones Metro en Windows 8
Desarrollo de Aplicaciones Metro en Windows 8Desarrollo de Aplicaciones Metro en Windows 8
Desarrollo de Aplicaciones Metro en Windows 8Rodolfo Finochietti
 
ALM con Visual Studio y TFS 2013
ALM con Visual Studio y TFS 2013ALM con Visual Studio y TFS 2013
ALM con Visual Studio y TFS 2013Rodolfo Finochietti
 
Despliegue continuo en dev ops para multiples entornos de dync 365
Despliegue continuo en dev ops para multiples entornos de dync 365Despliegue continuo en dev ops para multiples entornos de dync 365
Despliegue continuo en dev ops para multiples entornos de dync 365Demian Raschkovan
 
Alm orientado a power platform
Alm orientado a power platformAlm orientado a power platform
Alm orientado a power platformDemian Raschkovan
 
Real CI/CD para MSDyn365FO… Be a hero!
Real CI/CD para MSDyn365FO… Be a hero!Real CI/CD para MSDyn365FO… Be a hero!
Real CI/CD para MSDyn365FO… Be a hero!Demian Raschkovan
 
DevOps con Visual Studio Team Services
DevOps con Visual Studio Team ServicesDevOps con Visual Studio Team Services
DevOps con Visual Studio Team ServicesLuis Fraile
 
Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015
Mejorando la productividad en proyectos java EE con  CI y CD - OTN 2015 Mejorando la productividad en proyectos java EE con  CI y CD - OTN 2015
Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015 César Hernández
 
Probando aplicaciones AngularJS
Probando aplicaciones AngularJSProbando aplicaciones AngularJS
Probando aplicaciones AngularJSRodrigo Pimentel
 
DotNet 2019 | Luis Fraile - Tests de integración con .NET Core, Docker y Azur...
DotNet 2019 | Luis Fraile - Tests de integración con .NET Core, Docker y Azur...DotNet 2019 | Luis Fraile - Tests de integración con .NET Core, Docker y Azur...
DotNet 2019 | Luis Fraile - Tests de integración con .NET Core, Docker y Azur...Plain Concepts
 
SharePoint Framework, paso a paso
SharePoint Framework, paso a pasoSharePoint Framework, paso a paso
SharePoint Framework, paso a pasoHaaron Gonzalez
 
Bdd (Behavior Driven Development)
Bdd (Behavior Driven Development)Bdd (Behavior Driven Development)
Bdd (Behavior Driven Development)Helder De Oliveira
 
Dev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producciónDev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producciónKleer Agile Coaching & Training
 
DevOps como habilitador de continous delivery
DevOps como habilitador de continous deliveryDevOps como habilitador de continous delivery
DevOps como habilitador de continous deliveryJuan Mauricio
 
Integración Continua usando Team Foundation Server
Integración Continua usando Team Foundation ServerIntegración Continua usando Team Foundation Server
Integración Continua usando Team Foundation ServerErnesto Cardenas Cangahuala
 

La actualidad más candente (20)

Integración contínua con Jenkins
Integración contínua con JenkinsIntegración contínua con Jenkins
Integración contínua con Jenkins
 
Desarrollo de Aplicaciones Metro en Windows 8
Desarrollo de Aplicaciones Metro en Windows 8Desarrollo de Aplicaciones Metro en Windows 8
Desarrollo de Aplicaciones Metro en Windows 8
 
ALM con Visual Studio y TFS 2013
ALM con Visual Studio y TFS 2013ALM con Visual Studio y TFS 2013
ALM con Visual Studio y TFS 2013
 
Despliegue continuo en dev ops para multiples entornos de dync 365
Despliegue continuo en dev ops para multiples entornos de dync 365Despliegue continuo en dev ops para multiples entornos de dync 365
Despliegue continuo en dev ops para multiples entornos de dync 365
 
Alm orientado a power platform
Alm orientado a power platformAlm orientado a power platform
Alm orientado a power platform
 
Real CI/CD para MSDyn365FO… Be a hero!
Real CI/CD para MSDyn365FO… Be a hero!Real CI/CD para MSDyn365FO… Be a hero!
Real CI/CD para MSDyn365FO… Be a hero!
 
DevOps con Visual Studio Team Services
DevOps con Visual Studio Team ServicesDevOps con Visual Studio Team Services
DevOps con Visual Studio Team Services
 
Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015
Mejorando la productividad en proyectos java EE con  CI y CD - OTN 2015 Mejorando la productividad en proyectos java EE con  CI y CD - OTN 2015
Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015
 
Introducción a GitFlow
Introducción a GitFlowIntroducción a GitFlow
Introducción a GitFlow
 
Probando aplicaciones AngularJS
Probando aplicaciones AngularJSProbando aplicaciones AngularJS
Probando aplicaciones AngularJS
 
DotNet 2019 | Luis Fraile - Tests de integración con .NET Core, Docker y Azur...
DotNet 2019 | Luis Fraile - Tests de integración con .NET Core, Docker y Azur...DotNet 2019 | Luis Fraile - Tests de integración con .NET Core, Docker y Azur...
DotNet 2019 | Luis Fraile - Tests de integración con .NET Core, Docker y Azur...
 
SharePoint Framework, paso a paso
SharePoint Framework, paso a pasoSharePoint Framework, paso a paso
SharePoint Framework, paso a paso
 
Bdd (Behavior Driven Development)
Bdd (Behavior Driven Development)Bdd (Behavior Driven Development)
Bdd (Behavior Driven Development)
 
Lemoncode github actions
Lemoncode   github actionsLemoncode   github actions
Lemoncode github actions
 
Dev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producciónDev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producción
 
Tdd con Angular y jasmine
Tdd con Angular y jasmineTdd con Angular y jasmine
Tdd con Angular y jasmine
 
Jenkins ci + selenium
Jenkins ci + seleniumJenkins ci + selenium
Jenkins ci + selenium
 
DevOps como habilitador de continous delivery
DevOps como habilitador de continous deliveryDevOps como habilitador de continous delivery
DevOps como habilitador de continous delivery
 
Integración Continua usando Team Foundation Server
Integración Continua usando Team Foundation ServerIntegración Continua usando Team Foundation Server
Integración Continua usando Team Foundation Server
 
Web apps con angular y material design
Web apps con angular y material designWeb apps con angular y material design
Web apps con angular y material design
 

Similar a Victor sanchez saturdaymadrid2020

Herramientas y complementos al desarrollar con tecnologías Microsoft
Herramientas y complementos al desarrollar con tecnologías MicrosoftHerramientas y complementos al desarrollar con tecnologías Microsoft
Herramientas y complementos al desarrollar con tecnologías MicrosoftMiguel Teheran
 
Azure Functions Spanish
Azure Functions SpanishAzure Functions Spanish
Azure Functions SpanishCDS
 
Proyect Evenge. Event manager
Proyect Evenge. Event managerProyect Evenge. Event manager
Proyect Evenge. Event managerIvan Ortega
 
Dynamics saturday madrid 2018 tdd con dynamics 365 ce - jordi
Dynamics saturday madrid 2018   tdd con dynamics 365 ce - jordiDynamics saturday madrid 2018   tdd con dynamics 365 ce - jordi
Dynamics saturday madrid 2018 tdd con dynamics 365 ce - jordiDemian Raschkovan
 
Desarrollo Móvil con Android (...y Firebase)
Desarrollo Móvil con Android (...y Firebase)Desarrollo Móvil con Android (...y Firebase)
Desarrollo Móvil con Android (...y Firebase)Armando Picón Z.
 
Herramientas y entornos de implementacion de software
Herramientas y entornos de implementacion de softwareHerramientas y entornos de implementacion de software
Herramientas y entornos de implementacion de softwareMiguel Sanchez
 
Presentación Evenge #hackathonugr
Presentación Evenge #hackathonugrPresentación Evenge #hackathonugr
Presentación Evenge #hackathonugrIvan Ortega
 
Net conf ar v2018 start up
Net conf ar v2018 start upNet conf ar v2018 start up
Net conf ar v2018 start upfernando sonego
 
Meetup TestingUy 2018 - Selenium en la actualidad
Meetup TestingUy 2018 - Selenium en la actualidadMeetup TestingUy 2018 - Selenium en la actualidad
Meetup TestingUy 2018 - Selenium en la actualidadTestingUy
 
Introducción a testing en php
Introducción a testing en phpIntroducción a testing en php
Introducción a testing en phpIsmael Ambrosi
 

Similar a Victor sanchez saturdaymadrid2020 (20)

Testing efectivo en ASP Net Core
Testing efectivo en ASP Net CoreTesting efectivo en ASP Net Core
Testing efectivo en ASP Net Core
 
JS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World ExampleJS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World Example
 
Comenzando a usar el Continuous Delivery
 Comenzando a usar el Continuous Delivery Comenzando a usar el Continuous Delivery
Comenzando a usar el Continuous Delivery
 
Herramientas y complementos al desarrollar con tecnologías Microsoft
Herramientas y complementos al desarrollar con tecnologías MicrosoftHerramientas y complementos al desarrollar con tecnologías Microsoft
Herramientas y complementos al desarrollar con tecnologías Microsoft
 
Azure Functions
Azure FunctionsAzure Functions
Azure Functions
 
Azure Functions Spanish
Azure Functions SpanishAzure Functions Spanish
Azure Functions Spanish
 
Proyect Evenge. Event manager
Proyect Evenge. Event managerProyect Evenge. Event manager
Proyect Evenge. Event manager
 
Dynamics saturday madrid 2018 tdd con dynamics 365 ce - jordi
Dynamics saturday madrid 2018   tdd con dynamics 365 ce - jordiDynamics saturday madrid 2018   tdd con dynamics 365 ce - jordi
Dynamics saturday madrid 2018 tdd con dynamics 365 ce - jordi
 
Integración Continua
Integración ContinuaIntegración Continua
Integración Continua
 
Desarrollo Móvil con Android (...y Firebase)
Desarrollo Móvil con Android (...y Firebase)Desarrollo Móvil con Android (...y Firebase)
Desarrollo Móvil con Android (...y Firebase)
 
Integracion continua
Integracion continuaIntegracion continua
Integracion continua
 
Herramientas y entornos de implementacion de software
Herramientas y entornos de implementacion de softwareHerramientas y entornos de implementacion de software
Herramientas y entornos de implementacion de software
 
Un "TFS" para gobernarlos a todos
Un "TFS" para gobernarlos a todosUn "TFS" para gobernarlos a todos
Un "TFS" para gobernarlos a todos
 
DevOps on AZURE
DevOps on AZUREDevOps on AZURE
DevOps on AZURE
 
Presentación Evenge #hackathonugr
Presentación Evenge #hackathonugrPresentación Evenge #hackathonugr
Presentación Evenge #hackathonugr
 
Go
GoGo
Go
 
Net conf ar v2018 start up
Net conf ar v2018 start upNet conf ar v2018 start up
Net conf ar v2018 start up
 
Meetup TestingUy 2018 - Selenium en la actualidad
Meetup TestingUy 2018 - Selenium en la actualidadMeetup TestingUy 2018 - Selenium en la actualidad
Meetup TestingUy 2018 - Selenium en la actualidad
 
Meetup TestingUY 2018 - Selenium en la actualidad
Meetup TestingUY 2018 - Selenium en la actualidadMeetup TestingUY 2018 - Selenium en la actualidad
Meetup TestingUY 2018 - Selenium en la actualidad
 
Introducción a testing en php
Introducción a testing en phpIntroducción a testing en php
Introducción a testing en php
 

Más de Demian Raschkovan

Power automate como solucion para integraciones
Power automate como solucion para integracionesPower automate como solucion para integraciones
Power automate como solucion para integracionesDemian Raschkovan
 
Dynamics saturday online 2020 gestion de credito v1.0
Dynamics saturday online 2020   gestion de credito v1.0Dynamics saturday online 2020   gestion de credito v1.0
Dynamics saturday online 2020 gestion de credito v1.0Demian Raschkovan
 
Dynamics 365 human resources and business continuity pdf
Dynamics 365 human resources and business continuity pdfDynamics 365 human resources and business continuity pdf
Dynamics 365 human resources and business continuity pdfDemian Raschkovan
 
Dynamics for marketing 365 desde cero y como extender nuestro customer journe...
Dynamics for marketing 365 desde cero y como extender nuestro customer journe...Dynamics for marketing 365 desde cero y como extender nuestro customer journe...
Dynamics for marketing 365 desde cero y como extender nuestro customer journe...Demian Raschkovan
 
Automatizando flujos con teams y power automate
Automatizando flujos con teams y power automateAutomatizando flujos con teams y power automate
Automatizando flujos con teams y power automateDemian Raschkovan
 
Definir un Gobierno en Power Platform: todo bajo control
Definir un Gobierno en Power Platform: todo bajo controlDefinir un Gobierno en Power Platform: todo bajo control
Definir un Gobierno en Power Platform: todo bajo controlDemian Raschkovan
 
Todo lo que te gustaría saber de Field Services - Enrique Romero
Todo lo que te gustaría saber de Field Services - Enrique RomeroTodo lo que te gustaría saber de Field Services - Enrique Romero
Todo lo que te gustaría saber de Field Services - Enrique RomeroDemian Raschkovan
 
Empower digital transformation in your organization with the power platform
Empower digital transformation in your organization with the power platformEmpower digital transformation in your organization with the power platform
Empower digital transformation in your organization with the power platformDemian Raschkovan
 
Solución estándar: ¿Amigo o enemigo? PAC(K)
Solución estándar: ¿Amigo o enemigo? PAC(K)Solución estándar: ¿Amigo o enemigo? PAC(K)
Solución estándar: ¿Amigo o enemigo? PAC(K)Demian Raschkovan
 
Máquinas de estado con Logic App & Automate sobre CDS
Máquinas de estado con Logic App & Automate sobre CDSMáquinas de estado con Logic App & Automate sobre CDS
Máquinas de estado con Logic App & Automate sobre CDSDemian Raschkovan
 
Mejora tus procesos de negocio con Adaptive Cards
Mejora tus procesos de negocio con Adaptive CardsMejora tus procesos de negocio con Adaptive Cards
Mejora tus procesos de negocio con Adaptive CardsDemian Raschkovan
 
Dynamics saturday madrid 2019 sergio hernandez
Dynamics saturday madrid 2019 sergio hernandezDynamics saturday madrid 2019 sergio hernandez
Dynamics saturday madrid 2019 sergio hernandezDemian Raschkovan
 
Dynamics saturday madrid 2019 - que tus modelos en PBI no sean solo datos
Dynamics saturday madrid 2019 - que tus modelos en PBI no sean solo datosDynamics saturday madrid 2019 - que tus modelos en PBI no sean solo datos
Dynamics saturday madrid 2019 - que tus modelos en PBI no sean solo datosDemian Raschkovan
 
Dynamics saturday madrid 2019 microsoft flow
Dynamics saturday madrid 2019   microsoft flowDynamics saturday madrid 2019   microsoft flow
Dynamics saturday madrid 2019 microsoft flowDemian Raschkovan
 
Dynamics saturday madrid 2019 mixed reality
Dynamics saturday madrid 2019   mixed realityDynamics saturday madrid 2019   mixed reality
Dynamics saturday madrid 2019 mixed realityDemian Raschkovan
 
Dynamics saturday madrid 2019 business events en d365 fo
Dynamics saturday madrid 2019   business events en d365 foDynamics saturday madrid 2019   business events en d365 fo
Dynamics saturday madrid 2019 business events en d365 foDemian Raschkovan
 

Más de Demian Raschkovan (20)

Que ha sido de wally
Que ha sido de wallyQue ha sido de wally
Que ha sido de wally
 
Power automate como solucion para integraciones
Power automate como solucion para integracionesPower automate como solucion para integraciones
Power automate como solucion para integraciones
 
Dynamics saturday online 2020 gestion de credito v1.0
Dynamics saturday online 2020   gestion de credito v1.0Dynamics saturday online 2020   gestion de credito v1.0
Dynamics saturday online 2020 gestion de credito v1.0
 
Hjp saturday 2020_v2
Hjp saturday 2020_v2Hjp saturday 2020_v2
Hjp saturday 2020_v2
 
Chateando con power apps
Chateando con power appsChateando con power apps
Chateando con power apps
 
Dynamics 365 human resources and business continuity pdf
Dynamics 365 human resources and business continuity pdfDynamics 365 human resources and business continuity pdf
Dynamics 365 human resources and business continuity pdf
 
Dynamics for marketing 365 desde cero y como extender nuestro customer journe...
Dynamics for marketing 365 desde cero y como extender nuestro customer journe...Dynamics for marketing 365 desde cero y como extender nuestro customer journe...
Dynamics for marketing 365 desde cero y como extender nuestro customer journe...
 
Automatizando flujos con teams y power automate
Automatizando flujos con teams y power automateAutomatizando flujos con teams y power automate
Automatizando flujos con teams y power automate
 
Power bi fromzeroto bi hero
Power bi fromzeroto bi heroPower bi fromzeroto bi hero
Power bi fromzeroto bi hero
 
Definir un Gobierno en Power Platform: todo bajo control
Definir un Gobierno en Power Platform: todo bajo controlDefinir un Gobierno en Power Platform: todo bajo control
Definir un Gobierno en Power Platform: todo bajo control
 
Todo lo que te gustaría saber de Field Services - Enrique Romero
Todo lo que te gustaría saber de Field Services - Enrique RomeroTodo lo que te gustaría saber de Field Services - Enrique Romero
Todo lo que te gustaría saber de Field Services - Enrique Romero
 
Empower digital transformation in your organization with the power platform
Empower digital transformation in your organization with the power platformEmpower digital transformation in your organization with the power platform
Empower digital transformation in your organization with the power platform
 
Solución estándar: ¿Amigo o enemigo? PAC(K)
Solución estándar: ¿Amigo o enemigo? PAC(K)Solución estándar: ¿Amigo o enemigo? PAC(K)
Solución estándar: ¿Amigo o enemigo? PAC(K)
 
Máquinas de estado con Logic App & Automate sobre CDS
Máquinas de estado con Logic App & Automate sobre CDSMáquinas de estado con Logic App & Automate sobre CDS
Máquinas de estado con Logic App & Automate sobre CDS
 
Mejora tus procesos de negocio con Adaptive Cards
Mejora tus procesos de negocio con Adaptive CardsMejora tus procesos de negocio con Adaptive Cards
Mejora tus procesos de negocio con Adaptive Cards
 
Dynamics saturday madrid 2019 sergio hernandez
Dynamics saturday madrid 2019 sergio hernandezDynamics saturday madrid 2019 sergio hernandez
Dynamics saturday madrid 2019 sergio hernandez
 
Dynamics saturday madrid 2019 - que tus modelos en PBI no sean solo datos
Dynamics saturday madrid 2019 - que tus modelos en PBI no sean solo datosDynamics saturday madrid 2019 - que tus modelos en PBI no sean solo datos
Dynamics saturday madrid 2019 - que tus modelos en PBI no sean solo datos
 
Dynamics saturday madrid 2019 microsoft flow
Dynamics saturday madrid 2019   microsoft flowDynamics saturday madrid 2019   microsoft flow
Dynamics saturday madrid 2019 microsoft flow
 
Dynamics saturday madrid 2019 mixed reality
Dynamics saturday madrid 2019   mixed realityDynamics saturday madrid 2019   mixed reality
Dynamics saturday madrid 2019 mixed reality
 
Dynamics saturday madrid 2019 business events en d365 fo
Dynamics saturday madrid 2019   business events en d365 foDynamics saturday madrid 2019   business events en d365 fo
Dynamics saturday madrid 2019 business events en d365 fo
 

Último

Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 

Último (19)

Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 

Victor sanchez saturdaymadrid2020

  • 1. Junio 2020 Unit Tests con Specflow + FakeXRMEasy • Victor Sánchez
  • 2.
  • 3. Víctor Sánchez CRM Consultant Developer en Axazure TWITTER: @victorsolaya GITHUB: https://github.com/victorsolaya WEBPAGE: https://www.victorsolaya.com
  • 4. Por qué Unit Testing • No hay muchos proyectos con Unit Testing • Se confunden términos Unit Testing e Integration Testing • Mayor certeza de que el código funciona • Se pueden “probar” registros de Producción con nuestro código • Es desarrollo puro y duro en nuestro lenguaje favorito. Si eres Developer te encantará
  • 5. Pero…A quien le gusta crear Tests
  • 7. SpecFlow • Ayuda a convertir lenguaje nativo en código • Cualquiera puede crear Unit Tests incluso un consultor funcional
  • 9. FakeXRMEasy • Proyecto Open Source que permite automizar testing especialmente para Dynamics • Crea en memoria objectos mock • Todos los servicios, metadatos, son creados en memoria sin necesidad de estar online • Provee de un OrganizationService para poder hacer tests de plugins, workflow activities…
  • 10. Unit Testing NORMAL TESTING • Arrange • Act • Assert SPECFLOW LANGUAGE • Given • When • Then
  • 11. Qué haremos 1. Crearemos un proyecto para el plugin 2. Crearemos los archivos de Early Bound con XRMToolbox 3. Comprobaremos funcionalidad en CRM 4. Instalaremos lo necesario para SpecFlow y FakeXrmEasy 5. Crearemos proyecto de Unit Tests 6. Generaremos archivos necesarios para los Tests 7. Eso es todo!
  • 12. Quick References Specflow: • Tools > Extensions and Updates -> Specflow for Visual Studio 20xx
  • 13. Quick References Dependencias • Install-Package Microsoft.CrmSdk.CoreAssemblies • Install-Package SpecFlow • Install-Package SpecFlow.NUnit • Install-Package SpecFlow.Tools.MsBuild.Generation • Install-Package FakeXrmEasy.9 • Install-Package NUnit.ConsoleRunner • Install-Package NUnit3TestAdapter
  • 14. Problema de ejemplo Cada vez que se actualice la ciudad o el país de una cuenta queremos actualizar todos los contactos relacionados con esa ciudad y ese país 1. Se actualiza cuenta 2. Comprobar que se actualizan campos en contacto 3. Comprobar que contienen los datos esperados
  • 15. Manos a la obra