SlideShare una empresa de Scribd logo
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 Jenkins
Cé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 8
Rodolfo 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 2013
Rodolfo 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 365
Demian Raschkovan
 
Alm orientado a power platform
Alm orientado a power platformAlm orientado a power platform
Alm orientado a power platform
Demian 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 Services
Luis 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
 
Introducción a GitFlow
Introducción a GitFlowIntroducción a GitFlow
Introducción a GitFlow
Mauricio Gelves
 
Probando aplicaciones AngularJS
Probando aplicaciones AngularJSProbando aplicaciones AngularJS
Probando aplicaciones AngularJS
Rodrigo 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 paso
Haaron Gonzalez
 
Bdd (Behavior Driven Development)
Bdd (Behavior Driven Development)Bdd (Behavior Driven Development)
Bdd (Behavior Driven Development)
Helder De Oliveira
 
Lemoncode github actions
Lemoncode   github actionsLemoncode   github actions
Lemoncode github actions
Braulio Diez Botella
 
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
Kleer Agile Coaching & Training
 
Tdd con Angular y jasmine
Tdd con Angular y jasmineTdd con Angular y jasmine
Tdd con Angular y jasmine
Sergio Castillo Yrizales
 
Jenkins ci + selenium
Jenkins ci + seleniumJenkins ci + selenium
Jenkins ci + selenium
Info ArtdeCode
 
DevOps como habilitador de continous delivery
DevOps como habilitador de continous deliveryDevOps como habilitador de continous delivery
DevOps como habilitador de continous delivery
Juan 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 Server
Ernesto Cardenas Cangahuala
 
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
Sergio Castillo Yrizales
 

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

Testing efectivo en ASP Net Core
Testing efectivo en ASP Net CoreTesting efectivo en ASP Net Core
Testing efectivo en ASP Net Core
Nacho Fanjul Corteguera
 
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
SUGES (SharePoint Users Group España)
 
Comenzando a usar el Continuous Delivery
 Comenzando a usar el Continuous Delivery Comenzando a usar el Continuous Delivery
Comenzando a usar el Continuous Delivery
Amazon Web Services LATAM
 
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
Miguel Teheran
 
Azure Functions
Azure FunctionsAzure Functions
Azure Functions
Ivan Martinez
 
Azure Functions Spanish
Azure Functions SpanishAzure Functions Spanish
Azure Functions Spanish
CDS
 
Proyect Evenge. Event manager
Proyect Evenge. Event managerProyect Evenge. Event manager
Proyect Evenge. Event manager
Ivan 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 - jordi
Demian Raschkovan
 
Integración Continua
Integración ContinuaIntegración Continua
Integración Continua
Jose Patricio Bovet Derpich
 
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 software
Miguel Sanchez
 
Un "TFS" para gobernarlos a todos
Un "TFS" para gobernarlos a todosUn "TFS" para gobernarlos a todos
Un "TFS" para gobernarlos a todos
David Alvarez Palomo
 
DevOps on AZURE
DevOps on AZUREDevOps on AZURE
DevOps on AZURE
Juan Fabian
 
Presentación Evenge #hackathonugr
Presentación Evenge #hackathonugrPresentación Evenge #hackathonugr
Presentación Evenge #hackathonugrIvan Ortega
 
Go
GoGo
Net conf ar v2018 start up
Net conf ar v2018 start upNet conf ar v2018 start up
Net conf ar v2018 start up
fernando 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 actualidad
TestingUy
 
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
Centro de Ensayos de Software
 
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

Que ha sido de wally
Que ha sido de wallyQue ha sido de wally
Que ha sido de wally
Demian Raschkovan
 
Power automate como solucion para integraciones
Power automate como solucion para integracionesPower automate como solucion para integraciones
Power automate como solucion para integraciones
Demian 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.0
Demian Raschkovan
 
Hjp saturday 2020_v2
Hjp saturday 2020_v2Hjp saturday 2020_v2
Hjp saturday 2020_v2
Demian Raschkovan
 
Chateando con power apps
Chateando con power appsChateando con power apps
Chateando con power apps
Demian 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 pdf
Demian 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 automate
Demian Raschkovan
 
Power bi fromzeroto bi hero
Power bi fromzeroto bi heroPower bi fromzeroto bi hero
Power bi fromzeroto bi hero
Demian 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 control
Demian 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 Romero
Demian 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 platform
Demian 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 CDS
Demian 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 Cards
Demian Raschkovan
 
Dynamics saturday madrid 2019 sergio hernandez
Dynamics saturday madrid 2019 sergio hernandezDynamics saturday madrid 2019 sergio hernandez
Dynamics saturday madrid 2019 sergio hernandez
Demian 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 datos
Demian Raschkovan
 
Dynamics saturday madrid 2019 microsoft flow
Dynamics saturday madrid 2019   microsoft flowDynamics saturday madrid 2019   microsoft flow
Dynamics saturday madrid 2019 microsoft flow
Demian Raschkovan
 
Dynamics saturday madrid 2019 mixed reality
Dynamics saturday madrid 2019   mixed realityDynamics saturday madrid 2019   mixed reality
Dynamics saturday madrid 2019 mixed reality
Demian 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 fo
Demian 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

ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
DanielErazoMedina
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
espinozaernesto427
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
ValeriaAyala48
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
JimmyTejadaSalizar
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
rafaelsalazar0615
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
Luis Enrique Zafra Haro
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
ManuelCampos464987
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
durangense277
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
CesarPazosQuispe
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
DiegoCampos433849
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
Leidyfuentes19
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
sarasofiamontezuma
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
samuelvideos
 

Último (20)

ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
 

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