<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-38895959.post5306508476817949972..comments</id><updated>2010-07-05T16:31:08.932Z</updated><title type='text'>Comments on Simon Hart: DbDataReader.DoesColumnExist</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.simonrhart.com/feeds/5306508476817949972/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38895959/5306508476817949972/comments/default'/><link rel='alternate' type='text/html' href='http://www.simonrhart.com/2009/06/dbdatareaderdoescolumnexist.html'/><author><name>Simon Hart</name><uri>http://www.blogger.com/profile/08526568682625258690</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>5</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-38895959.post-1364642412728370309</id><published>2010-07-02T16:30:03.263Z</published><updated>2010-07-02T16:30:03.263Z</updated><title type='text'>I wasn't very clear but my point was your extensio...</title><content type='html'>I wasn&amp;#39;t very clear but my point was your extension method is not specific to the compact framework and their is nothing preventing you from using it with in .net as a whole.&lt;br /&gt;&lt;br /&gt;My suggestion is that although you are using a cut down version of .net it doesn&amp;#39;t mean you need to cripple your test library. Your blanket rule of testing against your device is all well and good but in this case you are making more work for yourself just to test that your code calls a method on an interface. Surly this is what integration tests are for.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38895959/5306508476817949972/comments/default/1364642412728370309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38895959/5306508476817949972/comments/default/1364642412728370309'/><link rel='alternate' type='text/html' href='http://www.simonrhart.com/2009/06/dbdatareaderdoescolumnexist.html?showComment=1278088203263#c1364642412728370309' title=''/><author><name>Bronumski</name><uri>http://www.blogger.com/profile/05091436116360365279</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.simonrhart.com/2009/06/dbdatareaderdoescolumnexist.html' ref='tag:blogger.com,1999:blog-38895959.post-5306508476817949972' source='http://www.blogger.com/feeds/38895959/posts/default/5306508476817949972' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-38895959.post-2103710925986742483</id><published>2010-06-16T09:12:36.155Z</published><updated>2010-06-16T09:12:36.155Z</updated><title type='text'>Hi Matt,

Long time no speak!

We've just had anot...</title><content type='html'>Hi Matt,&lt;br /&gt;&lt;br /&gt;Long time no speak!&lt;br /&gt;&lt;br /&gt;We&amp;#39;ve just had another one, a little girl so we are very pleased!&lt;br /&gt;&lt;br /&gt;Going back to this, this is the whole point of mocking implementations out as this test is a unit test I&amp;#39;m not interested in spanning multiple dependencies  as it makes my test more complex and brittle. &lt;br /&gt;&lt;br /&gt;I shouldn&amp;#39;t need to test the native implementation DbDataReader because i don&amp;#39;t own it and it has already been tested. If this was an integration test, I wouldn&amp;#39;t mock IDataReader.&lt;br /&gt;&lt;br /&gt;Simon</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38895959/5306508476817949972/comments/default/2103710925986742483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38895959/5306508476817949972/comments/default/2103710925986742483'/><link rel='alternate' type='text/html' href='http://www.simonrhart.com/2009/06/dbdatareaderdoescolumnexist.html?showComment=1276679556155#c2103710925986742483' title=''/><author><name>Simon Hart</name><uri>http://www.blogger.com/profile/08526568682625258690</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15682429139984623361'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.simonrhart.com/2009/06/dbdatareaderdoescolumnexist.html' ref='tag:blogger.com,1999:blog-38895959.post-5306508476817949972' source='http://www.blogger.com/feeds/38895959/posts/default/5306508476817949972' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-38895959.post-4776481743924564972</id><published>2010-06-15T11:16:42.799Z</published><updated>2010-06-15T11:16:42.799Z</updated><title type='text'>Hi Simon,

Valid point but I think in this case al...</title><content type='html'>Hi Simon,&lt;br /&gt;&lt;br /&gt;Valid point but I think in this case all you are doing is validating that your extension method is calling the correct method on the IDataRecord you&amp;#39;ve not changed any of the native functionality.&lt;br /&gt;&lt;br /&gt;Matt</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38895959/5306508476817949972/comments/default/4776481743924564972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38895959/5306508476817949972/comments/default/4776481743924564972'/><link rel='alternate' type='text/html' href='http://www.simonrhart.com/2009/06/dbdatareaderdoescolumnexist.html?showComment=1276600602799#c4776481743924564972' title=''/><author><name>Bronumski</name><uri>http://www.blogger.com/profile/05091436116360365279</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.simonrhart.com/2009/06/dbdatareaderdoescolumnexist.html' ref='tag:blogger.com,1999:blog-38895959.post-5306508476817949972' source='http://www.blogger.com/feeds/38895959/posts/default/5306508476817949972' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-38895959.post-8649485647291174082</id><published>2009-06-17T12:07:00.151Z</published><updated>2009-06-17T12:07:00.151Z</updated><title type='text'>Hi Daniel,

Good point. Your point works to some d...</title><content type='html'>Hi Daniel,&lt;br /&gt;&lt;br /&gt;Good point. Your point works to some degree. We use Rhino with MSTest - MSTest because it&amp;#39;s integrated with TFS. Of course there are no mocking frameworks for the Compact Framework, sadly.&lt;br /&gt;The example I posted could easy be tested with Rhino, MOQ or NMock etc but I think there is no substitue for testing device code on a actual device. If I were to test it on a desktop with a desktop mocking framework, then the test project would have to be a full .NET project. It&amp;#39;s then a question of which classes can be tested on the desktop and the device and which ones can only be tested on the device. I find it easier to have a blanket rule to always test on the device against the CF.&lt;br /&gt;&lt;br /&gt;Of course testing would be a lot easier if using a mocking framework. The thing I&amp;#39;m working on a at the moment could easily take advantage of desktop testing and mocking frameworks. It just means I&amp;#39;d have to divide my test project up.&lt;br /&gt;&lt;br /&gt;Simon.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38895959/5306508476817949972/comments/default/8649485647291174082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38895959/5306508476817949972/comments/default/8649485647291174082'/><link rel='alternate' type='text/html' href='http://www.simonrhart.com/2009/06/dbdatareaderdoescolumnexist.html?showComment=1245240420151#c8649485647291174082' title=''/><author><name>Simon Hart</name><uri>http://www.blogger.com/profile/08526568682625258690</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15682429139984623361'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.simonrhart.com/2009/06/dbdatareaderdoescolumnexist.html' ref='tag:blogger.com,1999:blog-38895959.post-5306508476817949972' source='http://www.blogger.com/feeds/38895959/posts/default/5306508476817949972' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-38895959.post-2715683573664406109</id><published>2009-06-16T20:52:40.384Z</published><updated>2009-06-16T20:52:40.384Z</updated><title type='text'>Hi Simon
Sorry to bother you again ;) I usually te...</title><content type='html'>Hi Simon&lt;br /&gt;Sorry to bother you again ;) I usually tend to program hybrid code which then can be tested on the pc platform with NUnit and famous mocking frameworks like NMock2. I try to minimize the difference between the two platforms such that the general &amp;quot;logic&amp;quot; can be normally tested with NUnit and mocking frameworks.  I hope you understand what I want to say because I&amp;#39;m a bit tired...&lt;br /&gt;&lt;br /&gt;Greets Daniel</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38895959/5306508476817949972/comments/default/2715683573664406109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38895959/5306508476817949972/comments/default/2715683573664406109'/><link rel='alternate' type='text/html' href='http://www.simonrhart.com/2009/06/dbdatareaderdoescolumnexist.html?showComment=1245185560384#c2715683573664406109' title=''/><author><name>Daniel Marbach</name><uri>http://www.planetgeek.ch</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.simonrhart.com/2009/06/dbdatareaderdoescolumnexist.html' ref='tag:blogger.com,1999:blog-38895959.post-5306508476817949972' source='http://www.blogger.com/feeds/38895959/posts/default/5306508476817949972' type='text/html'/></entry></feed>