SlideShare a Scribd company logo
Mocking, TDD, BDD for wp7 max paulousky www.maxpaulousky.com twitter: @paulousky This work is licensed under a Creative Commons Attribution By license.
agenda BDD TDD mocking
BDD Based on SpecFlow library and Gherkin syntax I forked SpecFlow and implemented WP7 support. Will be merged into the main trunk We can’t operate with Views directly – have to work with ViewModel Call commands Read/write properties
demo BDD
TDD Create a separate testing assembly You can use one assembly as an entry point (reduce number of apps on your device) You may tag your test methods You may test internal methods You may test asynchronous methods Test methods may use additional attributes
demo TDD
Mocking  No native support in WP7 runtime Should use Silverlight assemblies Can’t add a reference to WP7 assembly Some WP7 features are not available (XNA) WP7 specific classes should be wrapped with the adapter pattern, put into containers and used as interfaces
demo    mocking
summary Unit test tell you that you build the system right Acceptance tests tell you that you build the right system You can use either both kind of tests or just one Mocking for WP7 is not trivial but possible
links www.specflow.org/ github.com/techtalk/SpecFlow github.com/aximus/SpecFlow csharperimage.jeremylikness.com/2010/07/silverlight-ui-automation-testing-using.html www.hanselminutes.com/default.aspx?showID=267 codingsolutions.blogspot.com/2010/03/windows-phone-7-tdd-kata-using-mvvm-and.html www.linkedin.com/groups?home=&gid=3405242&trk=anet_ug_hm stackoverflow.com/questions/4137528/ui-automation-for-wp7 www.smartypantscoding.com/a-cheat-sheet-for-unit-testing-silverlight-apps-on-windows-phone-7 http://msdn.microsoft.com/ru-ru/magazine/gg490346.aspx
thanks max paulousky www.maxpaulousky.com twitter: @paulousky This work is licensed under a Creative Commons Attribution By license.
questions

More Related Content

What's hot

Test Driven Development with OSGi - Balázs Zsoldos
Test Driven Development with OSGi - Balázs ZsoldosTest Driven Development with OSGi - Balázs Zsoldos
Test Driven Development with OSGi - Balázs Zsoldos
mfrancis
 
Five Easy Ways to QA Your Drupal Site
Five Easy Ways to QA Your Drupal SiteFive Easy Ways to QA Your Drupal Site
Five Easy Ways to QA Your Drupal Site
Mediacurrent
 
How to Build and Maintain Quality Drupal Sites with Automated Testing
How to Build and Maintain Quality Drupal Sites with Automated TestingHow to Build and Maintain Quality Drupal Sites with Automated Testing
How to Build and Maintain Quality Drupal Sites with Automated Testing
Acquia
 
TDD on OSGi, in practice.
TDD on OSGi, in practice.TDD on OSGi, in practice.
TDD on OSGi, in practice.
Elian, I.
 
Introduction to test programming
Introduction to test programmingIntroduction to test programming
Introduction to test programming
openfinanceDev
 
Java Beginners Meetup February 2017: Testing and TDD
Java Beginners Meetup February 2017: Testing and TDDJava Beginners Meetup February 2017: Testing and TDD
Java Beginners Meetup February 2017: Testing and TDD
Patrick Kostjens
 
Test Presentation
Test PresentationTest Presentation
Test Presentation
setitesuk
 
jForce In Action
jForce In ActionjForce In Action
jForce In Action
Gordon Bockus
 
SpecFlow for Agile Teams
SpecFlow for Agile TeamsSpecFlow for Agile Teams
SpecFlow for Agile Teams
Alejandro Ramirez
 
Drupalcamp Simpletest
Drupalcamp SimpletestDrupalcamp Simpletest
Drupalcamp Simpletest
lyricnz
 
CI / CD w/ Codeception
CI / CD w/ CodeceptionCI / CD w/ Codeception
CI / CD w/ Codeception
Tudor Barbu
 
Scrum and Test-driven development
Scrum and Test-driven developmentScrum and Test-driven development
Scrum and Test-driven development
toteb5
 
VS2015 C++ new features
VS2015 C++ new featuresVS2015 C++ new features
VS2015 C++ new features
명신 김
 
EVOLVE'15 | Enhance | Rene Ugarte | AEM Quality Assurance
EVOLVE'15 | Enhance | Rene Ugarte | AEM Quality AssuranceEVOLVE'15 | Enhance | Rene Ugarte | AEM Quality Assurance
EVOLVE'15 | Enhance | Rene Ugarte | AEM Quality Assurance
Evolve The Adobe Digital Marketing Community
 
Driving application development through behavior driven development
Driving application development through behavior driven developmentDriving application development through behavior driven development
Driving application development through behavior driven development
Einar Ingebrigtsen
 
Continuous Integration, TDD & Living Documentation - Odoo Experience 2015
Continuous Integration, TDD & Living Documentation - Odoo Experience 2015Continuous Integration, TDD & Living Documentation - Odoo Experience 2015
Continuous Integration, TDD & Living Documentation - Odoo Experience 2015
Colin Wren
 
Agile .NET Development with BDD and Continuous Integration
Agile .NET Development with BDD and Continuous IntegrationAgile .NET Development with BDD and Continuous Integration
Agile .NET Development with BDD and Continuous Integration
Quan Truong Anh
 
Introducing TDD to your project
Introducing TDD to your projectIntroducing TDD to your project
Introducing TDD to your project
Bastian Feder
 
Docx Report Module
Docx Report ModuleDocx Report Module
Docx Report Module
Odoo
 
REST API level TDD with NodeJS
REST API level TDD with NodeJSREST API level TDD with NodeJS
REST API level TDD with NodeJS
Dang Viet Ha (Tony)
 

What's hot (20)

Test Driven Development with OSGi - Balázs Zsoldos
Test Driven Development with OSGi - Balázs ZsoldosTest Driven Development with OSGi - Balázs Zsoldos
Test Driven Development with OSGi - Balázs Zsoldos
 
Five Easy Ways to QA Your Drupal Site
Five Easy Ways to QA Your Drupal SiteFive Easy Ways to QA Your Drupal Site
Five Easy Ways to QA Your Drupal Site
 
How to Build and Maintain Quality Drupal Sites with Automated Testing
How to Build and Maintain Quality Drupal Sites with Automated TestingHow to Build and Maintain Quality Drupal Sites with Automated Testing
How to Build and Maintain Quality Drupal Sites with Automated Testing
 
TDD on OSGi, in practice.
TDD on OSGi, in practice.TDD on OSGi, in practice.
TDD on OSGi, in practice.
 
Introduction to test programming
Introduction to test programmingIntroduction to test programming
Introduction to test programming
 
Java Beginners Meetup February 2017: Testing and TDD
Java Beginners Meetup February 2017: Testing and TDDJava Beginners Meetup February 2017: Testing and TDD
Java Beginners Meetup February 2017: Testing and TDD
 
Test Presentation
Test PresentationTest Presentation
Test Presentation
 
jForce In Action
jForce In ActionjForce In Action
jForce In Action
 
SpecFlow for Agile Teams
SpecFlow for Agile TeamsSpecFlow for Agile Teams
SpecFlow for Agile Teams
 
Drupalcamp Simpletest
Drupalcamp SimpletestDrupalcamp Simpletest
Drupalcamp Simpletest
 
CI / CD w/ Codeception
CI / CD w/ CodeceptionCI / CD w/ Codeception
CI / CD w/ Codeception
 
Scrum and Test-driven development
Scrum and Test-driven developmentScrum and Test-driven development
Scrum and Test-driven development
 
VS2015 C++ new features
VS2015 C++ new featuresVS2015 C++ new features
VS2015 C++ new features
 
EVOLVE'15 | Enhance | Rene Ugarte | AEM Quality Assurance
EVOLVE'15 | Enhance | Rene Ugarte | AEM Quality AssuranceEVOLVE'15 | Enhance | Rene Ugarte | AEM Quality Assurance
EVOLVE'15 | Enhance | Rene Ugarte | AEM Quality Assurance
 
Driving application development through behavior driven development
Driving application development through behavior driven developmentDriving application development through behavior driven development
Driving application development through behavior driven development
 
Continuous Integration, TDD & Living Documentation - Odoo Experience 2015
Continuous Integration, TDD & Living Documentation - Odoo Experience 2015Continuous Integration, TDD & Living Documentation - Odoo Experience 2015
Continuous Integration, TDD & Living Documentation - Odoo Experience 2015
 
Agile .NET Development with BDD and Continuous Integration
Agile .NET Development with BDD and Continuous IntegrationAgile .NET Development with BDD and Continuous Integration
Agile .NET Development with BDD and Continuous Integration
 
Introducing TDD to your project
Introducing TDD to your projectIntroducing TDD to your project
Introducing TDD to your project
 
Docx Report Module
Docx Report ModuleDocx Report Module
Docx Report Module
 
REST API level TDD with NodeJS
REST API level TDD with NodeJSREST API level TDD with NodeJS
REST API level TDD with NodeJS
 

Viewers also liked

Fitspiration 2011 - Hoe start ik met social media om mijn klanten te binden e...
Fitspiration 2011 - Hoe start ik met social media om mijn klanten te binden e...Fitspiration 2011 - Hoe start ik met social media om mijn klanten te binden e...
Fitspiration 2011 - Hoe start ik met social media om mijn klanten te binden e...
Remco Bron
 
Next Generation Leaders - Report from sessions at CCHUC13
Next Generation Leaders - Report from sessions at CCHUC13Next Generation Leaders - Report from sessions at CCHUC13
Next Generation Leaders - Report from sessions at CCHUC13
Tom Hood, CPA,CITP,CGMA
 
Rollercoaster Griendencollege
Rollercoaster GriendencollegeRollercoaster Griendencollege
Rollercoaster Griendencollege
Remco Bron
 
Andryus Kasparavichus, «Molekuly jivoi kul'tury zastavlyayut priezjat'»
Andryus Kasparavichus,  «Molekuly jivoi kul'tury zastavlyayut priezjat'»Andryus Kasparavichus,  «Molekuly jivoi kul'tury zastavlyayut priezjat'»
Andryus Kasparavichus, «Molekuly jivoi kul'tury zastavlyayut priezjat'»Транслируем.бел
 
Intro to Vita Beans
Intro to Vita BeansIntro to Vita Beans
Intro to Vita Beans
amruth
 
Pokaż kotku, co masz w środku profilowanie aplikacji z xhprof
Pokaż kotku, co masz w środku   profilowanie aplikacji z xhprofPokaż kotku, co masz w środku   profilowanie aplikacji z xhprof
Pokaż kotku, co masz w środku profilowanie aplikacji z xhprof
3camp
 
Poszedłeś na swoje, masz apetyt na więcej – czyli jak rozwinąć firmę
Poszedłeś na swoje, masz apetyt na więcej – czyli jak rozwinąć firmęPoszedłeś na swoje, masz apetyt na więcej – czyli jak rozwinąć firmę
Poszedłeś na swoje, masz apetyt na więcej – czyli jak rozwinąć firmę
3camp
 

Viewers also liked (8)

Netnews.by startup presentation
Netnews.by startup presentationNetnews.by startup presentation
Netnews.by startup presentation
 
Fitspiration 2011 - Hoe start ik met social media om mijn klanten te binden e...
Fitspiration 2011 - Hoe start ik met social media om mijn klanten te binden e...Fitspiration 2011 - Hoe start ik met social media om mijn klanten te binden e...
Fitspiration 2011 - Hoe start ik met social media om mijn klanten te binden e...
 
Next Generation Leaders - Report from sessions at CCHUC13
Next Generation Leaders - Report from sessions at CCHUC13Next Generation Leaders - Report from sessions at CCHUC13
Next Generation Leaders - Report from sessions at CCHUC13
 
Rollercoaster Griendencollege
Rollercoaster GriendencollegeRollercoaster Griendencollege
Rollercoaster Griendencollege
 
Andryus Kasparavichus, «Molekuly jivoi kul'tury zastavlyayut priezjat'»
Andryus Kasparavichus,  «Molekuly jivoi kul'tury zastavlyayut priezjat'»Andryus Kasparavichus,  «Molekuly jivoi kul'tury zastavlyayut priezjat'»
Andryus Kasparavichus, «Molekuly jivoi kul'tury zastavlyayut priezjat'»
 
Intro to Vita Beans
Intro to Vita BeansIntro to Vita Beans
Intro to Vita Beans
 
Pokaż kotku, co masz w środku profilowanie aplikacji z xhprof
Pokaż kotku, co masz w środku   profilowanie aplikacji z xhprofPokaż kotku, co masz w środku   profilowanie aplikacji z xhprof
Pokaż kotku, co masz w środku profilowanie aplikacji z xhprof
 
Poszedłeś na swoje, masz apetyt na więcej – czyli jak rozwinąć firmę
Poszedłeś na swoje, masz apetyt na więcej – czyli jak rozwinąć firmęPoszedłeś na swoje, masz apetyt na więcej – czyli jak rozwinąć firmę
Poszedłeś na swoje, masz apetyt na więcej – czyli jak rozwinąć firmę
 

Similar to Wp7 tdd, bdd, mocking

The Drupal 7 Worst Practices Catalogue
The Drupal 7 Worst Practices CatalogueThe Drupal 7 Worst Practices Catalogue
The Drupal 7 Worst Practices Catalogue
Alexandre Israël
 
Features & Installation Profiles
Features & Installation ProfilesFeatures & Installation Profiles
Features & Installation Profiles
David Watson
 
Getting Started with Zend Framework
Getting Started with Zend FrameworkGetting Started with Zend Framework
Getting Started with Zend Framework
Juan Antonio
 
Hacking core
Hacking coreHacking core
Hacking core
Ashok Modi
 
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Mack Hardy
 
PHPConf.asia 2016 - BDD with Behat for Beginners
PHPConf.asia 2016 - BDD with Behat for BeginnersPHPConf.asia 2016 - BDD with Behat for Beginners
PHPConf.asia 2016 - BDD with Behat for Beginners
Adam Englander
 
BDD using Cucumber JVM
BDD using Cucumber JVMBDD using Cucumber JVM
BDD using Cucumber JVM
Vijay Krishnan Ramaswamy
 
Zend_Layout & Zend_View Enhancements
Zend_Layout & Zend_View EnhancementsZend_Layout & Zend_View Enhancements
Zend_Layout & Zend_View Enhancements
Ralph Schindler
 
MVC Frameworks for building PHP Web Applications
MVC Frameworks for building PHP Web ApplicationsMVC Frameworks for building PHP Web Applications
MVC Frameworks for building PHP Web Applications
Vforce Infotech
 
CucumberSeleniumWD
CucumberSeleniumWDCucumberSeleniumWD
CucumberSeleniumWD
Vikas Sarin
 
201502 - Integration Testing
201502 - Integration Testing201502 - Integration Testing
201502 - Integration Testing
lyonjug
 
Codeception
CodeceptionCodeception
Codeception
少東 張
 
JavaLand - Integration Testing How-to
JavaLand - Integration Testing How-toJavaLand - Integration Testing How-to
JavaLand - Integration Testing How-to
Nicolas Fränkel
 
130511 stop wasting_your_time
130511 stop wasting_your_time130511 stop wasting_your_time
130511 stop wasting_your_time
Henning Blohm
 
Modern JavaScript Talk
Modern JavaScript TalkModern JavaScript Talk
Modern JavaScript Talk
Derek Binkley
 
Software reengineering for Developers
Software reengineering for DevelopersSoftware reengineering for Developers
Software reengineering for Developers
Bradley Irby
 
TDD - Agile
TDD - Agile TDD - Agile
TDD - Agile
harinderpisces
 
Loopt unit test experiences
Loopt unit test experiencesLoopt unit test experiences
Loopt unit test experiences
Heine Frifeldt
 
Zend framework 01 - introduction
Zend framework 01 - introductionZend framework 01 - introduction
Zend framework 01 - introduction
Tricode (part of Dept)
 
Tutorial test driven development with Visual Studio 2012
Tutorial test driven development with Visual Studio 2012Tutorial test driven development with Visual Studio 2012
Tutorial test driven development with Visual Studio 2012
Hong Le Van
 

Similar to Wp7 tdd, bdd, mocking (20)

The Drupal 7 Worst Practices Catalogue
The Drupal 7 Worst Practices CatalogueThe Drupal 7 Worst Practices Catalogue
The Drupal 7 Worst Practices Catalogue
 
Features & Installation Profiles
Features & Installation ProfilesFeatures & Installation Profiles
Features & Installation Profiles
 
Getting Started with Zend Framework
Getting Started with Zend FrameworkGetting Started with Zend Framework
Getting Started with Zend Framework
 
Hacking core
Hacking coreHacking core
Hacking core
 
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
 
PHPConf.asia 2016 - BDD with Behat for Beginners
PHPConf.asia 2016 - BDD with Behat for BeginnersPHPConf.asia 2016 - BDD with Behat for Beginners
PHPConf.asia 2016 - BDD with Behat for Beginners
 
BDD using Cucumber JVM
BDD using Cucumber JVMBDD using Cucumber JVM
BDD using Cucumber JVM
 
Zend_Layout & Zend_View Enhancements
Zend_Layout & Zend_View EnhancementsZend_Layout & Zend_View Enhancements
Zend_Layout & Zend_View Enhancements
 
MVC Frameworks for building PHP Web Applications
MVC Frameworks for building PHP Web ApplicationsMVC Frameworks for building PHP Web Applications
MVC Frameworks for building PHP Web Applications
 
CucumberSeleniumWD
CucumberSeleniumWDCucumberSeleniumWD
CucumberSeleniumWD
 
201502 - Integration Testing
201502 - Integration Testing201502 - Integration Testing
201502 - Integration Testing
 
Codeception
CodeceptionCodeception
Codeception
 
JavaLand - Integration Testing How-to
JavaLand - Integration Testing How-toJavaLand - Integration Testing How-to
JavaLand - Integration Testing How-to
 
130511 stop wasting_your_time
130511 stop wasting_your_time130511 stop wasting_your_time
130511 stop wasting_your_time
 
Modern JavaScript Talk
Modern JavaScript TalkModern JavaScript Talk
Modern JavaScript Talk
 
Software reengineering for Developers
Software reengineering for DevelopersSoftware reengineering for Developers
Software reengineering for Developers
 
TDD - Agile
TDD - Agile TDD - Agile
TDD - Agile
 
Loopt unit test experiences
Loopt unit test experiencesLoopt unit test experiences
Loopt unit test experiences
 
Zend framework 01 - introduction
Zend framework 01 - introductionZend framework 01 - introduction
Zend framework 01 - introduction
 
Tutorial test driven development with Visual Studio 2012
Tutorial test driven development with Visual Studio 2012Tutorial test driven development with Visual Studio 2012
Tutorial test driven development with Visual Studio 2012
 

More from Транслируем.бел

Медицинские трансляции
Медицинские трансляцииМедицинские трансляции
Медицинские трансляции
Транслируем.бел
 
Руководство по видео, трансляциям и премьерам (Youtube 2020)
Руководство по видео, трансляциям и премьерам (Youtube 2020)Руководство по видео, трансляциям и премьерам (Youtube 2020)
Руководство по видео, трансляциям и премьерам (Youtube 2020)
Транслируем.бел
 
Корпоративный новый год онлайн
Корпоративный новый год онлайнКорпоративный новый год онлайн
Корпоративный новый год онлайн
Транслируем.бел
 
Unofficial guide to vmix by streamgeeks
Unofficial guide to vmix by streamgeeksUnofficial guide to vmix by streamgeeks
Unofficial guide to vmix by streamgeeks
Транслируем.бел
 
Руководство для малого и среднего бизнеса по использованию цифровых решений
Руководство для малого и среднего бизнеса по использованию цифровых решенийРуководство для малого и среднего бизнеса по использованию цифровых решений
Руководство для малого и среднего бизнеса по использованию цифровых решений
Транслируем.бел
 
Sennheiser ew100 g2
Sennheiser ew100 g2Sennheiser ew100 g2
Sennheiser ew100 g2
Транслируем.бел
 
Sony mcs 8m
Sony mcs 8mSony mcs 8m
Сравнение поколений Y и Z
Сравнение поколений Y и ZСравнение поколений Y и Z
Сравнение поколений Y и Z
Транслируем.бел
 
Онлайн-трансляции в соцсетях
Онлайн-трансляции в соцсетяхОнлайн-трансляции в соцсетях
Онлайн-трансляции в соцсетях
Транслируем.бел
 
Как организовать трансляцию в Facebook
Как организовать трансляцию в FacebookКак организовать трансляцию в Facebook
Как организовать трансляцию в Facebook
Транслируем.бел
 
The ultimate guide to facebook live for your event
The ultimate guide to facebook live for your eventThe ultimate guide to facebook live for your event
The ultimate guide to facebook live for your event
Транслируем.бел
 
Guide to facebook live
Guide to facebook liveGuide to facebook live
Guide to facebook live
Транслируем.бел
 
Comdi player
Comdi playerComdi player
Что сделать, чтобы сто раз все не переделывать
Что сделать, чтобы сто раз все не переделыватьЧто сделать, чтобы сто раз все не переделывать
Что сделать, чтобы сто раз все не переделывать
Транслируем.бел
 
Когда сказать нет. Арсений Кравченко
Когда сказать нет. Арсений КравченкоКогда сказать нет. Арсений Кравченко
Когда сказать нет. Арсений Кравченко
Транслируем.бел
 
Marketing Essentials for Startup Teams
Marketing Essentials for Startup TeamsMarketing Essentials for Startup Teams
Marketing Essentials for Startup Teams
Транслируем.бел
 
SMM учебник. Как продвигать банк в социальных сетях. Наглядное пособие
SMM учебник. Как продвигать банк в социальных сетях. Наглядное пособиеSMM учебник. Как продвигать банк в социальных сетях. Наглядное пособие
SMM учебник. Как продвигать банк в социальных сетях. Наглядное пособие
Транслируем.бел
 
методы монетизации интернет проектов
методы монетизации интернет проектовметоды монетизации интернет проектов
методы монетизации интернет проектов
Транслируем.бел
 
Belarus internet users discovery
Belarus internet users discoveryBelarus internet users discovery
Belarus internet users discovery
Транслируем.бел
 

More from Транслируем.бел (20)

Медицинские трансляции
Медицинские трансляцииМедицинские трансляции
Медицинские трансляции
 
Vinteo
VinteoVinteo
Vinteo
 
Руководство по видео, трансляциям и премьерам (Youtube 2020)
Руководство по видео, трансляциям и премьерам (Youtube 2020)Руководство по видео, трансляциям и премьерам (Youtube 2020)
Руководство по видео, трансляциям и премьерам (Youtube 2020)
 
Корпоративный новый год онлайн
Корпоративный новый год онлайнКорпоративный новый год онлайн
Корпоративный новый год онлайн
 
Unofficial guide to vmix by streamgeeks
Unofficial guide to vmix by streamgeeksUnofficial guide to vmix by streamgeeks
Unofficial guide to vmix by streamgeeks
 
Руководство для малого и среднего бизнеса по использованию цифровых решений
Руководство для малого и среднего бизнеса по использованию цифровых решенийРуководство для малого и среднего бизнеса по использованию цифровых решений
Руководство для малого и среднего бизнеса по использованию цифровых решений
 
Sennheiser ew100 g2
Sennheiser ew100 g2Sennheiser ew100 g2
Sennheiser ew100 g2
 
Sony mcs 8m
Sony mcs 8mSony mcs 8m
Sony mcs 8m
 
Сравнение поколений Y и Z
Сравнение поколений Y и ZСравнение поколений Y и Z
Сравнение поколений Y и Z
 
Онлайн-трансляции в соцсетях
Онлайн-трансляции в соцсетяхОнлайн-трансляции в соцсетях
Онлайн-трансляции в соцсетях
 
Как организовать трансляцию в Facebook
Как организовать трансляцию в FacebookКак организовать трансляцию в Facebook
Как организовать трансляцию в Facebook
 
The ultimate guide to facebook live for your event
The ultimate guide to facebook live for your eventThe ultimate guide to facebook live for your event
The ultimate guide to facebook live for your event
 
Guide to facebook live
Guide to facebook liveGuide to facebook live
Guide to facebook live
 
Comdi player
Comdi playerComdi player
Comdi player
 
Что сделать, чтобы сто раз все не переделывать
Что сделать, чтобы сто раз все не переделыватьЧто сделать, чтобы сто раз все не переделывать
Что сделать, чтобы сто раз все не переделывать
 
Когда сказать нет. Арсений Кравченко
Когда сказать нет. Арсений КравченкоКогда сказать нет. Арсений Кравченко
Когда сказать нет. Арсений Кравченко
 
Marketing Essentials for Startup Teams
Marketing Essentials for Startup TeamsMarketing Essentials for Startup Teams
Marketing Essentials for Startup Teams
 
SMM учебник. Как продвигать банк в социальных сетях. Наглядное пособие
SMM учебник. Как продвигать банк в социальных сетях. Наглядное пособиеSMM учебник. Как продвигать банк в социальных сетях. Наглядное пособие
SMM учебник. Как продвигать банк в социальных сетях. Наглядное пособие
 
методы монетизации интернет проектов
методы монетизации интернет проектовметоды монетизации интернет проектов
методы монетизации интернет проектов
 
Belarus internet users discovery
Belarus internet users discoveryBelarus internet users discovery
Belarus internet users discovery
 

Wp7 tdd, bdd, mocking

  • 1. Mocking, TDD, BDD for wp7 max paulousky www.maxpaulousky.com twitter: @paulousky This work is licensed under a Creative Commons Attribution By license.
  • 2. agenda BDD TDD mocking
  • 3. BDD Based on SpecFlow library and Gherkin syntax I forked SpecFlow and implemented WP7 support. Will be merged into the main trunk We can’t operate with Views directly – have to work with ViewModel Call commands Read/write properties
  • 5. TDD Create a separate testing assembly You can use one assembly as an entry point (reduce number of apps on your device) You may tag your test methods You may test internal methods You may test asynchronous methods Test methods may use additional attributes
  • 7. Mocking No native support in WP7 runtime Should use Silverlight assemblies Can’t add a reference to WP7 assembly Some WP7 features are not available (XNA) WP7 specific classes should be wrapped with the adapter pattern, put into containers and used as interfaces
  • 8. demo mocking
  • 9. summary Unit test tell you that you build the system right Acceptance tests tell you that you build the right system You can use either both kind of tests or just one Mocking for WP7 is not trivial but possible
  • 10. links www.specflow.org/ github.com/techtalk/SpecFlow github.com/aximus/SpecFlow csharperimage.jeremylikness.com/2010/07/silverlight-ui-automation-testing-using.html www.hanselminutes.com/default.aspx?showID=267 codingsolutions.blogspot.com/2010/03/windows-phone-7-tdd-kata-using-mvvm-and.html www.linkedin.com/groups?home=&gid=3405242&trk=anet_ug_hm stackoverflow.com/questions/4137528/ui-automation-for-wp7 www.smartypantscoding.com/a-cheat-sheet-for-unit-testing-silverlight-apps-on-windows-phone-7 http://msdn.microsoft.com/ru-ru/magazine/gg490346.aspx
  • 11. thanks max paulousky www.maxpaulousky.com twitter: @paulousky This work is licensed under a Creative Commons Attribution By license.