120 likes | 341 Views
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
E N D
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.