<html><head><base href="x-msg://73/"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Well come with low expectations. Consider the context and the generalness of your request. We have around 50 minutes for a different subject than what you're asking about. Furthermore, you've not given any priority, so there's almost no chance to satisfy your request unless you have low expectations.</div><div><br></div><div>Regarding testing clients, this is orthogonal to using mock libraries. It's a design issue. Has the design:</div><div><span class="Apple-tab-span" style="white-space:pre">  </span>- avoided DRY violations regarding accessing the layer?</div><div><span class="Apple-tab-span" style="white-space:pre">      </span>- provided an interface that is domain-centric?</div><div><span class="Apple-tab-span" style="white-space:pre">      </span>- made it injectable?</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>- ...</div><div><br></div><div>If so, then a test harness can set up a client using a test double for the "database". That test double should be individual-test-method focused, rather than generic for a number of test methods (more like a stub than a fake to use the terminology of <a href="http://xunitpatterns.com/">http://xunitpatterns.com/</a>). (This is the error I'd prefer to make rather than making a full simulator - aka a fake.)</div><div><br></div><div>Using a mock library is about how to create a test double - it's less of a testing issue and more of a test-support issue. Making something testable is a different design issue.</div><div><br></div><div>Now this is coming from the perspective of needing to design a solution. I use the word design loosely because this design work has already been done and there's a pretty standard way to solve it, so there's not much design left. The one thing that has changed recently for me is the design of the dao. I'd use Hades (one of the lightning talks from last month: <a href="http://redmine.synyx.org/projects/show/hades">http://redmine.synyx.org/projects/show/hades</a>).</div><div><br></div><div>OTOH, if you are talking about testing the database logic:</div><div><span class="Apple-tab-span" style="white-space:pre">   </span>- Use Hades - you don't write the code, so don't test it. Maybe a smoke test</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>- If you write it yourself and you are using an ORM, nearly same comment</div><div><span class="Apple-tab-span" style="white-space:pre">     </span>- If you don't own the schema and there's heavy dependence on using the db, then you need to test with the db present</div><div><br></div><div>(You don't need to test the code you don't write - though it's probably worth writing some kind of smoke or integration test to verify that things actually work - it's all about risk mitigation.)</div><div><br></div><div>In a nutshell, that really is the essence of database testing. Really.</div><div><br></div><div>In general a strong separation between enabling technology and your business code is required if you want to have a chance of a well-agining system. </div><div><br></div><div>While I'm no fan of EJB, this is one thing they did well with EJB 3.0 spec. They removed entity beans (a complete cluster f from inception), and introduced JPA - a lightweight ORM. They made session beans POJOs and provided light dependency injection. Finally, people who had either actually written software (or at least looked at well-written software) finally got involved in writing the specs and the spec got much better. Way too little too late, but much better. Had EJB 3.0 came out about 7 years ago, it would have been relevant to modern software development.</div><div><br></div><div>Brett</div><div><br><div><div>On Apr 12, 2011, at 10:00 AM 4/12/11, Rupesh Bhochhibhoya wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div bgcolor="white" lang="EN-US" link="blue" vlink="purple"><div class="WordSection1" style="page: WordSection1; "><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; "><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">I mean for all possible logic including clients.<o:p></o:p></span></div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; "><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); "><o:p> </o:p></span></div><div><div style="border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-top-style: solid; border-top-color: rgb(181, 196, 223); border-top-width: 1pt; padding-top: 3pt; padding-right: 0in; padding-bottom: 0in; padding-left: 0in; "><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; "><b><span style="font-size: 10pt; font-family: Tahoma, sans-serif; ">From:</span></b><span style="font-size: 10pt; font-family: Tahoma, sans-serif; "><span class="Apple-converted-space"> </span><a href="mailto:jug-bounces@lists.okcjug.org" style="color: blue; text-decoration: underline; ">jug-bounces@lists.okcjug.org</a><span class="Apple-converted-space"> </span>[mailto:jug-bounces@lists.okcjug.org]<span class="Apple-converted-space"> </span><b>On Behalf Of<span class="Apple-converted-space"> </span></b>Brett L. Schuchert<br><b>Sent:</b><span class="Apple-converted-space"> </span>Tuesday, April 12, 2011 12:45 AM<br><b>To:</b><span class="Apple-converted-space"> </span><a href="mailto:jug@lists.okcjug.org" style="color: blue; text-decoration: underline; ">jug@lists.okcjug.org</a><br><b>Cc:</b><span class="Apple-converted-space"> </span><a href="mailto:jug@lists.okcjug.org" style="color: blue; text-decoration: underline; ">jug@lists.okcjug.org</a><br><b>Subject:</b><span class="Apple-converted-space"> </span>Re: [OKC JUG] Reminder - meeting Tuesday, April 12th<o:p></o:p></span></div></div></div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; "><o:p> </o:p></div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">By test persistent layer, do you mean test the logic in the persistent layer, or test clients of that layer?<o:p></o:p></div></div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; "><o:p> </o:p></div></div><div><p class="MsoNormal" style="margin-top: 0in; margin-right: 0in; margin-bottom: 12pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">Brett<o:p></o:p></p><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">Free tutorials:<o:p></o:p></div></div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">    <a href="http://schuchert.wikispaces.com" style="color: blue; text-decoration: underline; ">http://schuchert.wikispaces.com</a><o:p></o:p></div></div></div><div><p class="MsoNormal" style="margin-top: 0in; margin-right: 0in; margin-bottom: 12pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; "><br>On Apr 11, 2011, at 8:36 PM, Rupesh Bhochhibhoya <<a href="mailto:RBhochhibhoya@telogical.com" style="color: blue; text-decoration: underline; ">RBhochhibhoya@telogical.com</a>> wrote:<o:p></o:p></p></div><blockquote style="margin-top: 5pt; margin-bottom: 5pt; "><div><pre style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 10pt; font-family: 'Courier New'; word-wrap: break-word; "><span style="font-family: Tahoma, sans-serif; color: black; ">I have always used nice mocks. And didn't really know why other mocks didn't work well for me. So, thanks for info. <o:p></o:p></span></pre><pre style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 10pt; font-family: 'Courier New'; "><span style="font-family: Tahoma, sans-serif; color: black; "><o:p> </o:p></span></pre><pre style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 10pt; font-family: 'Courier New'; "><span style="font-family: Tahoma, sans-serif; color: black; ">Also it would be nice if you could share how to test persistent layer effectively using Jmockit.<o:p></o:p></span></pre><pre style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 10pt; font-family: 'Courier New'; "><span style="font-family: Tahoma, sans-serif; color: black; "><o:p> </o:p></span></pre><pre style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 10pt; font-family: 'Courier New'; "><span style="font-family: Tahoma, sans-serif; color: black; ">"Brett L. Schuchert" <<a href="mailto:schuchert@yahoo.com" style="color: blue; text-decoration: underline; ">schuchert@yahoo.com</a>> wrote:<o:p></o:p></span></pre><pre style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 10pt; font-family: 'Courier New'; "><span style="font-family: Tahoma, sans-serif; color: black; "><o:p> </o:p></span></pre><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">Might as well start the talk now...<o:p></o:p></div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; "><o:p> </o:p></div></div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">When using mock libraries, by default use "nice" or "not strict" mocks. Most of them default to strict mocks. The problem with this is that doing so makes the tests more fragile and dependent on incidental complexity rather than essential responsibility.<o:p></o:p></div></div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; "><o:p> </o:p></div></div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">So in the case of easy mocks, don't use "createMock" by default, instead prefer "createNiceMock". Only use createMock when you really want to verify all messages sent. This is actually a fringe case when doing<b><i><span class="Apple-converted-space"> </span>focused</i></b><span class="Apple-converted-space"> </span>unit tests. This is typically counter-intuitive. It only becomes clear as individuals move from tests with lots of checks to focused, single-check or single-logical-check based tests.<o:p></o:p></div></div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; "><o:p> </o:p></div></div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">OK, discuss...<o:p></o:p></div></div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; "><o:p> </o:p></div></div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">Brett<o:p></o:p></div></div><div><div><div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">On Apr 11, 2011, at 11:05 AM 4/11/11, Rupesh Bhochhibhoya wrote:<o:p></o:p></div></div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; "><br><br><o:p></o:p></div><div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; "><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">I appreciate if you can demonstrate  examples with TDD/BDD. And also if you could show its advantages over EasyMock, that will be helpful too.</span><o:p></o:p></div></div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; "><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); "> </span><o:p></o:p></div></div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; "><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); "> </span><o:p></o:p></div></div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; "><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">Rupesh</span><o:p></o:p></div></div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; "><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); "> </span><o:p></o:p></div></div><div><div style="border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-top-style: solid; padding-top: 3pt; padding-right: 0in; padding-bottom: 0in; padding-left: 0in; border-width: initial; border-color: initial; "><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; "><b><span style="font-size: 10pt; font-family: Tahoma, sans-serif; ">From:</span></b><span class="apple-converted-space"><span style="font-size: 10pt; font-family: Tahoma, sans-serif; "> </span></span><span style="font-size: 10pt; font-family: Tahoma, sans-serif; "><a href="mailto:jug-bounces@lists.okcjug.org" style="color: blue; text-decoration: underline; ">jug-bounces@lists.okcjug.org</a><span class="apple-converted-space"> </span>[mailto:jug-bounces@lists.okcjug.org]<span class="apple-converted-space"> </span><b>On Behalf Of<span class="apple-converted-space"> </span></b>Brett L. Schuchert<br><b>Sent:</b><span class="apple-converted-space"> </span>Monday, April 11, 2011 10:52 AM<br><b>To:</b><span class="apple-converted-space"> </span><a href="mailto:jug@lists.okcjug.org" style="color: blue; text-decoration: underline; ">jug@lists.okcjug.org</a><br><b>Subject:</b><span class="apple-converted-space"> </span>Re: [OKC JUG] Reminder - meeting Tuesday, April 12th</span><o:p></o:p></div></div></div></div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; "> <o:p></o:p></div></div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">Oh yeah, I suppose I should prep (mostly kidding).<o:p></o:p></div></div><div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; "> <o:p></o:p></div></div></div><div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">I already have a "story" for this presentation but I'm open to adjusting if anybody has anything in particular they'd like to me to cover. Just reply to this chain with request.<o:p></o:p></div></div></div><div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; "> <o:p></o:p></div></div></div><div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">One thing I will be demonstrating is overriding static methods with the tool - which is cool, too cool, but cool.<o:p></o:p></div></div></div><div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; "> <o:p></o:p></div></div></div><div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">Brett<o:p></o:p></div></div><div><div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">On Apr 11, 2011, at 10:35 AM 4/11/11, Brian Sheldon wrote:<o:p></o:p></div></div></div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; "><br><br><br><o:p></o:p></div></div><div><div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">We have a meeting tomorrow. We will be providing food and drinks this month thanks to MBO sponsoring again this year.<o:p></o:p></div></div></div><div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; "> <o:p></o:p></div></div></div><div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">Please go register<span class="apple-converted-space"> </span><a href="http://okcjug.org/registration" style="color: blue; text-decoration: underline; ">http://okcjug.org/registration</a> so we know how much food to get and who to pick from for the door prize.<o:p></o:p></div></div></div><div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; "> <o:p></o:p></div></div></div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; text-indent: -0.25in; line-height: 12.75pt; "><span style="font-size: 10pt; font-family: Symbol; color: rgb(85, 85, 85); ">·</span><span style="font-size: 7pt; color: rgb(85, 85, 85); ">        <span class="apple-converted-space"> </span></span><span style="font-size: 9pt; font-family: Verdana, sans-serif; color: rgb(85, 85, 85); ">Sponsor: <a href="http://www.mbopartners.com/" target="_blank" style="color: blue; text-decoration: underline; "><span style="color: rgb(41, 112, 166); text-decoration: none; ">MBO Partners</span></a></span><o:p></o:p></div></div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; text-indent: -0.25in; line-height: 12.75pt; "><span style="font-size: 10pt; font-family: Symbol; color: rgb(85, 85, 85); ">·</span><span style="font-size: 7pt; color: rgb(85, 85, 85); ">        <span class="apple-converted-space"> </span></span><span style="font-size: 9pt; font-family: Verdana, sans-serif; color: rgb(85, 85, 85); ">Speaker: <a href="http://okcjug.org/bios/brett-schuchert" target="_blank" style="color: blue; text-decoration: underline; "><span style="color: rgb(41, 112, 166); text-decoration: none; ">Brett Schuchert</span></a></span><o:p></o:p></div></div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; text-indent: -0.25in; line-height: 12.75pt; "><span style="font-size: 10pt; font-family: Symbol; color: rgb(85, 85, 85); ">·</span><span style="font-size: 7pt; color: rgb(85, 85, 85); ">        <span class="apple-converted-space"> </span></span><span style="font-size: 9pt; font-family: Verdana, sans-serif; color: rgb(85, 85, 85); "><a href="http://code.google.com/p/jmockit/" target="_blank" style="color: blue; text-decoration: underline; "><span style="color: rgb(41, 112, 166); text-decoration: none; ">JMockit</span></a> - Things you shouldn’t do when testing…</span><o:p></o:p></div></div><h3 style="margin-right: 0in; margin-left: 0in; font-size: 13.5pt; font-family: 'Times New Roman', serif; margin-top: 0in; margin-bottom: 0.0001pt; "><span style="font-family: Arial, sans-serif; color: rgb(85, 85, 85); letter-spacing: -0.6pt; ">Agenda</span><o:p></o:p></h3><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; text-indent: -0.25in; line-height: 12.75pt; "><span style="font-size: 10pt; font-family: Symbol; color: rgb(85, 85, 85); ">·</span><span style="font-size: 7pt; color: rgb(85, 85, 85); ">        <span class="apple-converted-space"> </span></span><span style="font-size: 9pt; font-family: Verdana, sans-serif; color: rgb(85, 85, 85); ">11:30 am – Welcome Announcements</span><o:p></o:p></div></div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; text-indent: -0.25in; line-height: 12.75pt; "><span style="font-size: 10pt; font-family: Symbol; color: rgb(85, 85, 85); ">·</span><span style="font-size: 7pt; color: rgb(85, 85, 85); ">        <span class="apple-converted-space"> </span></span><span style="font-size: 9pt; font-family: Verdana, sans-serif; color: rgb(85, 85, 85); ">11:40 am – Lightning Talks begin</span><o:p></o:p></div></div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; text-indent: -0.25in; line-height: 12.75pt; "><span style="font-size: 10pt; font-family: Symbol; color: rgb(85, 85, 85); ">·</span><span style="font-size: 7pt; color: rgb(85, 85, 85); ">        <span class="apple-converted-space"> </span></span><span style="font-size: 9pt; font-family: Verdana, sans-serif; color: rgb(85, 85, 85); ">12:40 pm – Wrap Up</span><o:p></o:p></div></div><h3 style="margin-right: 0in; margin-left: 0in; font-size: 13.5pt; font-family: 'Times New Roman', serif; margin-top: 0in; margin-bottom: 0.0001pt; "><span style="font-family: Arial, sans-serif; color: rgb(85, 85, 85); letter-spacing: -0.6pt; ">Presentation Information</span><o:p></o:p></h3><h3 style="margin-right: 0in; margin-left: 0in; font-size: 13.5pt; font-family: 'Times New Roman', serif; margin-top: 0in; margin-bottom: 0.0001pt; line-height: 12.75pt; "><span style="font-size: 10pt; font-family: Arial, sans-serif; color: rgb(85, 85, 85); letter-spacing: -0.6pt; font-weight: normal; ">JMockIt is a powerful and easy (perhaps too easy) to use mocking tool that allows you to do things that defy logic. Examples include stubbing static methods, changing final classes and pretty much anything that byte code injection on the fly (per test) allows. We’ll look at some of those things along with more traditional test double creation and then discuss why on the one hand it is nice to have this power, on the other hand you should almost never use it.</span><o:p></o:p></h3><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; "><br><span style="color: rgb(136, 136, 136); ">--<span class="apple-converted-space"> </span><br>Brian</span><o:p></o:p></div></div></div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">_______________________________________________<br>Jug mailing list<br><a href="mailto:Jug@lists.okcjug.org" style="color: blue; text-decoration: underline; ">Jug@lists.okcjug.org</a><br><a href="http://lists.okcjug.org/listinfo.cgi/jug-okcjug.org" style="color: blue; text-decoration: underline; ">http://lists.okcjug.org/listinfo.cgi/jug-okcjug.org</a><o:p></o:p></div></div></div><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; "> <o:p></o:p></div></div></div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; "><span style="font-size: 13.5pt; font-family: Helvetica, sans-serif; ">_______________________________________________<br>Jug mailing list<br><a href="mailto:Jug@lists.okcjug.org" style="color: blue; text-decoration: underline; ">Jug@lists.okcjug.org</a><br><a href="http://lists.okcjug.org/listinfo.cgi/jug-okcjug.org" style="color: blue; text-decoration: underline; ">http://lists.okcjug.org/listinfo.cgi/jug-okcjug.org</a><o:p></o:p></span></div></div></div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; "><o:p> </o:p></div></div></div></div></div></blockquote><blockquote style="margin-top: 5pt; margin-bottom: 5pt; "><div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">_______________________________________________<br>Jug mailing list<br><a href="mailto:Jug@lists.okcjug.org" style="color: blue; text-decoration: underline; ">Jug@lists.okcjug.org</a><br><a href="http://lists.okcjug.org/listinfo.cgi/jug-okcjug.org" style="color: blue; text-decoration: underline; ">http://lists.okcjug.org/listinfo.cgi/jug-okcjug.org</a><o:p></o:p></div></div></blockquote></div>_______________________________________________<br>Jug mailing list<br><a href="mailto:Jug@lists.okcjug.org" style="color: blue; text-decoration: underline; ">Jug@lists.okcjug.org</a><br><a href="http://lists.okcjug.org/listinfo.cgi/jug-okcjug.org" style="color: blue; text-decoration: underline; ">http://lists.okcjug.org/listinfo.cgi/jug-okcjug.org</a><br></div></blockquote></div><br></div></body></html>