Mocking Mocking and Testing Outcomes. 383

Posted by Uncle Bob Sat, 23 Jan 2010 17:32:00 GMT

The number of mocking frameworks has proliferated in recent years. This pleases me because it is a symptom that testing in general, and TDD in particular, have become prevalent enough to support a rich panoply of third-party products.

On the other hand, all frameworks carry a disease with them that I call The Mount Everest Syndrome: “I use it because it’s there.” The more mocking frameworks that appear, the more I see them enthusiastically used. Yet the prolific use of mocking frameworks is a rather serious design smell…

Lately I have seen several books and articles that present TDD through the lens of a mocking framework. If you were a newbie to TDD, these writings might give you the idea that TDD was defined by the use of mocking tools, rather than by the disciplines of TDD.

So when should use use a mocking framework? The answer is the same for any other framework. You use a framework only when that framework will give you a significant advantage.

Why so austere? Why shouldn’t you use frameworks “just because they are there”? Because frameworks always come with a cost. They must be learned by the author, and by all the readers. They become part of the configuration and have to be maintained. They must be tracked from version to version. But perhaps the most significant reason is that once you have a hammer, everything starts to look like a nail. The framework will put you into a constraining mindset that prevents you from seeing other, better solutions.

Consider, for example, this lovely bit of code that I’ve been reviewing recently. It uses the Moq framework to initialize a test double:

var vehicleMock = Mocks.Create<IClientVehicle>()
 .WithPersistentKey()
 .WithLogicalKey().WithLogicalName()
 .WithRentalSessionManager(rsm =>
    {
      var rs = Mocks.Create<IRentalSession>();
      rsm.Setup(o => o.GetCurrentSession()).Returns(rs.Object);
      rsm.Setup(o =>
       o.GetLogicalKeyOfSessionMember(It.IsAny<string>(),
        It.IsAny<int>())).Returns("Rental");
    })
 .AddVehicleMember<IRoadFactory>()
 .AddVehicleMember<IRoadItemFactory>(rf => rf.Setup(t => 
    t.CreateItems(It.IsAny<IRoad>())).Returns(pac))
 .AddVehicleMember<ILegacyCorporateRental>()
 .AddVehicleMember<IRentalStation>(
    m => m.Setup(k => k.Facility.FacilityID).Returns(0))
 .AddVehicleMember<IRoadManager>(m=>
    m.Setup(k=>k.GetRoundedBalanceDue(25,It.IsAny<IRoad>())).Returns(25));
Some of you might think I’m setting up a straw-man. I’m not. I realize that bad code can be written in any language or framework, and that you can’t blame the language or framework for bad code.

The point I am making is that code like this was the way that all unit tests in this application were written. The team was new to TDD, and they got hold of a tool, and perhaps read a book or article, and decided that TDD was done by using a mocking tool. This team is not the first team I’ve seen who have fallen into this trap. In fact, I think that the TDD industry as a whole has fallen into this trap to one degree or another.

Now don’t get me wrong. I like mocking tools. I use them in Ruby, Java, and .Net. I think they provide a convenient way to make test-doubles in situations where more direct means are difficult.

For example, I recently wrote the following unit test in FitNesse using the Mockito framework.

  @Before
  public void setUp() {
    manager = mock(GSSManager.class);
    properties = new Properties();
  }

  @Test
  public void credentialsShouldBeNullIfNoServiceName() throws Exception {
    NegotiateAuthenticator authenticator = 
      new NegotiateAuthenticator(manager, properties);
    assertNull(authenticator.getServerCredentials());
    verify(manager, never()).createName(
      anyString(), (Oid) anyObject(), (Oid) anyObject());
  }
The first line in the setUp function is lovely. It’s kind of hard to get prettier than that. Anybody reading it understands that manager will be a mock of the GSSManager class.

It’s not too hard to understand the test itself. Apparently we are happy to have the manager be a dummy object with the constraint that createName is never called by NegotiateAuthenticator. The anyString() and anyObject() calls are pretty self explanatory.

On the other hand, I wish I could have said this:

assertTrue(manager.createNameWasNotCalled());

That statement does not require my poor readers to understand anything about Mockito. Of course it does require me to hand-roll a manager mock. Would that be hard? Let’s try.

First I need to create a dummy.

  private class MockGSSManager extends GSSManager {
    public Oid[] getMechs() {
      return new Oid[0];
    }

    public Oid[] getNamesForMech(Oid oid) throws GSSException {
      return new Oid[0];
    }

    public Oid[] getMechsForName(Oid oid) {
      return new Oid[0];
    }

    public GSSName createName(String s, Oid oid) throws GSSException {
      return null;
    }

    public GSSName createName(byte[] bytes, Oid oid) throws GSSException {
      return null;
    }

    public GSSName createName(String s, Oid oid, Oid oid1) throws GSSException {
      return null;
    }

    public GSSName createName(byte[] bytes, Oid oid, Oid oid1) throws GSSException {
      return null;
    }

    public GSSCredential createCredential(int i) throws GSSException {
      return null;
    }

    public GSSCredential createCredential(GSSName gssName, int i, Oid oid, int i1) throws GSSException {
      return null;
    }

    public GSSCredential createCredential(GSSName gssName, int i, Oid[] oids, int i1) throws GSSException {
      return null;
    }

    public GSSContext createContext(GSSName gssName, Oid oid, GSSCredential gssCredential, int i) throws GSSException {
      return null;
    }

    public GSSContext createContext(GSSCredential gssCredential) throws GSSException {
      return null;
    }

    public GSSContext createContext(byte[] bytes) throws GSSException {
      return null;
    }

    public void addProviderAtFront(Provider provider, Oid oid) throws GSSException {
    }

    public void addProviderAtEnd(Provider provider, Oid oid) throws GSSException {
    }
  }

“Oh, ick!” you say. Yes, I agree it’s a lot of code. On the other hand, it took me just a single keystroke on my IDE to generate all those dummy methods. (In IntelliJ it was simply command-I to implement all unimplemented methods.) So it wasn’t particularly hard. And, of course, I can put this code somewhere where nobody had to look at it unless they want to. It has the advantage that anybody who knows Java can understand it, and can look right at the methods to see what they are returning. No “special” knowledge of the mocking framework is necessary.

Next, let’s’ make a test double that does precisely what this test needs.

  private class GSSManagerSpy extends MockGSSManager {
    public boolean createNameWasCalled;

    public GSSName createName(String s, Oid oid) throws GSSException {
      createNameWasCalled = true;
      return null;
    }
  }
Well, that just wasn’t that hard. It’s really easy to understand too. Now, let’s rewrite the test.

  @Test
  public void credentialsShouldBeNullIfNoServiceNameWithHandRolledMocks() throws Exception {
    NegotiateAuthenticator authenticator = new NegotiateAuthenticator(managerSpy, properties);
    assertNull(authenticator.getServerCredentials());
    assertFalse(managerSpy.createNameWasCalled);
  }
Well, that test is just a load easier to read than verify(manager, never()).createName(anyString(), (Oid) anyObject(), (Oid) anyObject());.

“But Uncle Bob!” I hear you say. “That scenario is too simple. What if there were lots of dependencies and things…” I’m glad you asked that question, because the very next test is just such a situation.


  @Test
  public void credentialsShouldBeNonNullIfServiceNamePresent() throws Exception {
    properties.setProperty("NegotiateAuthenticator.serviceName", "service");
    properties.setProperty("NegotiateAuthenticator.serviceNameType", "1.1");
    properties.setProperty("NegotiateAuthenticator.mechanism", "1.2");
    GSSName gssName = mock(GSSName.class);
    GSSCredential gssCredential = mock(GSSCredential.class);
    when(manager.createName(anyString(), (Oid) anyObject(), (Oid) anyObject())).thenReturn(gssName);
    when(manager.createCredential((GSSName) anyObject(), anyInt(), (Oid) anyObject(), anyInt())).thenReturn(gssCredential);
    NegotiateAuthenticator authenticator = new NegotiateAuthenticator(manager, properties);
    Oid serviceNameType = authenticator.getServiceNameType();
    Oid mechanism = authenticator.getMechanism();
    verify(manager).createName("service", serviceNameType, mechanism);
    assertEquals("1.1", serviceNameType.toString());
    assertEquals("1.2", mechanism.toString());
    verify(manager).createCredential(gssName, GSSCredential.INDEFINITE_LIFETIME, mechanism, GSSCredential.ACCEPT_ONLY);
    assertEquals(gssCredential, authenticator.getServerCredentials());
  }
Now I’ve got three test doubles that interact with each other; and I am verifying that the code under test is manipulating them all correctly. I could create hand-rolled test doubles for this; but the wiring between them would be scattered in the various test-double derivatives. I’d also have to write a significant number of accessors to get the values of the arguments to createName and createCredential. In short, the hand-rolled test-double code would be harder to understand than the Mockito code. The Mockito code puts the whole story in one simple test method rather than scattering it hither and yon in a plethora of little derivatives.

What’s more, since it’s clear that I should use a mocking framework for this test, I think I should be consistent and use if for all the tests in this file. So the hand-rolled MockGSSManager and ManagerSpy are history.

“But Uncle Bob, aren’t we always going to have dependencies like that? So aren’t we always going to have to use a mocking framework?”

That, my dear reader, is the real point of this blog. The answer to that salient questions is a profound: “No!

Why did I have to use Mockito for these tests? Because the number of objects in play was large. The module under test (NegotiateAuthenticator) used GSSName, GSSCredential, and GSSManager. In other words the coupling between the module under test and the test itself was high. (I see lightbulbs above some of your heads.) That’s right, boys and girls, we don’t want coupling to be high!

It is the high coupling between modules and tests that creates the need for a mocking framework. This high coupling is also the cause of the dreaded “Fragile Test” problem. How many tests break when you change a module? If the number is high, then the coupling between your modules and tests in high. Therefore, I conclude that those systems that make prolific use of mocking frameworks are likely to suffer from fragile tests.

Of the 277 unit test files in FitNesse, only 11 use Mockito. The reason for small number is two-fold. First, we test outcomes more often than we test mechanisms. That means we test how a small group of classes behaves, rather than testing the dance of method calls between those classes. The second reason is that our test doubles have no middle class. They are either very simple stubs and spies or they are moderately complex fakes.

Testing outcomes is a traditional decoupling technique. The test doesn’t care how the end result is calculated, so long as the end result is correct. There may be a dance of several method calls between a few different objects; but the test is oblivious since it only checks the answer. Therefore the tests are not strongly coupled to the solution and are not fragile.

Keeping middle-class test doubles (i.e. Mocks) to a minimum is another way of decoupling. Mocks, by their very nature, are coupled to mechanisms instead of outcomes. Mocks, or the setup code that builds them, have deep knowledge of the inner workings of several different classes. That knowledge is the very definition of high-coupling.

What is a “moderately complex fake” and why does it help to reduce coupling? One example within FitNesse is MockSocket. (The name of this class is historical. Nowadays it should be called FakeSocket.) This class derives from Socket and implements all its methods either to remember what was sent to the socket, or to allow a user to read some canned data. This is a “fake” because it simulates the behavior of a socket. It is not a mock because it has no coupling to any mechanisms. You don’t ask it whether it succeeded or failed, you ask it to send or recieve a string. This allows our unit tests to test outcomes rather than mechanisms.

The moral of this story is that the point at which you start to really need a mocking framework is the very point at which the coupling between your tests and code is getting too high. There are times when you can’t avoid this coupling, and those are the times when mocking frameworks really pay off. However, you should strive to keep the coupling between your code and tests low enough that you don’t need to use the mocking framework very often.

You do this by testing outcomes instead of mechanisms.

Comments

Leave a response

  1. Avatar
    Chad Myers 25 minutes later:

    You should really suffix these DI/mock posts with “in Java”

    Because your arguments stand… in Java. In C# and Ruby and JavaScript, and just about every other modern language, your arguments do not stand.

  2. Avatar
    Kay Johansen about 1 hour later:

    I too have seen overuse of mocking frameworks in tests, and agree that it’s a problem. However, your examples showed only one side of the story. From the name of your tests, e.g. credentialsShouldBeNonNullIfServiceNamePresent(), you indicate that you’re interested in the outcome. You did not give an example of a case when you really do want to test the interactions between objects, instead of outcomes.

    For example, if I want to test that an object properly notifies its observer, I use Mockito thus:

    @Test public void notifiesOutputValueChangedWhenAnInputValueChanges() { component.notifyValueChanged(); verify(connectTo).notifyValueChanged(); }

    I find the readability vastly improved by using a framework such as Mockito – and this is not a complex example with many objects.

  3. Avatar
    Kay Johansen about 1 hour later:
    Sorry for the formatting problem in my previous comment.
      @Test
      public void notifiesOutputValueChangedWhenAnInputValueChanges() {
        component.notifyValueChanged();
        verify(connectTo).notifyValueChanged();
      }
    
  4. Avatar
    Bill Sorensen about 2 hours later:

    I also use the excellent Moq framework in C#, and find it extremely valuable. I’ve seen (and written) fragile tests using mocks. I’ve come away with different lessons, though:

    1. Avoid using behavior verification. Whenever possible create simple dummies/fakes/stubs instead and use state verification on the class under test. Mocking frameworks make it easier to write these test doubles.

    2. Use TDD. I get into trouble when I write my tests after I write my production code.

    3. Refactor test classes to remove duplication. Extract a method to create a test double and give it a descriptive name.

    4. As you say, don’t feel obligated to use the mocking framework all the time. If a hand-rolled stub makes more sense, use that. Just factor in the maintenance on that class when the interface changes.

  5. Avatar
    Chris Brandsma about 2 hours later:

    C#/Rhino Mocks/ReSharper user here…

    I will agree that for simple classes creating a quick stub is not too much trouble. But for most of those cases you can also create a dynamic mock without too much ceremony as well. I often have to do this for .net Compact Framework code, for which there is no mocking framework.

    The issue, as I see it, is when you have multiple test scenarios to test through. The amount of setup required in your mocks/stub/fake can go up quickly. Worse, you might end up with multiple test fakes for single test cases. I have folders that contain nothing but stub classes for the same dependency—not good.

    That second part becomes a real maintenance issue as you continue development. Now, as you add properties, methods, and event to a given dependency, those items have to be propagated to your test classes.

    Next you have a business requirement change (like those never happen) and now you have to go through and change behaviors in all those places.

    Because of those problem areas, I find that it is ultimately simpler to just use a mocking framework. I don’t want to be afraid to change my code because of all the work involved to update the tests.

    Keep up the good work.

  6. Avatar
    Jan-Kees van Andel about 2 hours later:

    Funny you’re writing this article now. Last week I had a discussion with a colleague about two things you talk about in this article.

    First, we were arguing the use of mocking frameworks vs. hand writing mock objects. My point was that you should only use a mocking framework when it provides significant advantages over plain Java coding. My example was a complex class with lots of methods on which you would only need specialized behavior for one method. The proxy approach of i.e. EasyMock then has a significant advantage over handwriting a mock object.

    Another advantage of hand writing mocks, I think, is that is enables better encapsulation of test data. In most systems you can cover 90% of the situations using less than 10-15 test profiles. These profiles are known by the test department, are realistic and self documenting (i.e. a banking customer with one payment account and one savings account). When put into an appropriately named class, it becomes very simple for other people (not only developers, but also project managers or business people) to visualize what’s going on. With mocking frameworks, you’ll have the risk of scattering all this useful information across several test cases, losing this benefit.

    Second, he thought the point of a unit test was to test class internals, instead of the interface. Although I’ll have to agree on some degree (you must know the internals of a class when setting up your mocks), I argue this is a good thing and I think it leads to very fragile and maybe even useless tests.

    So, I totally agree with your article and this gives me a bit more ammunition for my next discussion (which I’ll start myself this Monday ;-)).

  7. Avatar
    Pablo Fernandez about 3 hours later:

    Nice post, really.

    Just a mention, the first mockito code could be refactored to use

    any(OId.class)

    to avoid the casts. :)

  8. Avatar
    Morten about 3 hours later:

    Thank you.

    I recentlly had an eye opener at work, where I was shown how our extensive use of Rhino Mock’s garbled the readability of our testing.

    After rewriting the test without Rhino mock’s it became apparent to me, how our learned behaviour to use mocks as much as we did affected the quality of our testing code.

    I’m now looking at mocking suspiciously.

  9. Avatar
    Tim Gifford about 4 hours later:

    Rolling my own mocks always made developers look at me weird. Their thought was that only developers new to TDD manually mocked.

    I don’t always hand code them, but when I think it will lead to clearer understanding and easier maintenance it is an easy decision.

  10. Avatar
    Colin Jack about 4 hours later:

    I used to agree but these days I have a very different view.

    I think mocking is best used to driven design (see Mock Roles, Not Objects http://joe.truemesh.com/MockRoles.pdf).

    Those tests do end up coupled to the design, they describe the interaction, so are relatively fragile. However I don’t mind this as they are just one type of test I write, I also have unit tests (including state based) and acceptance tests so if the design changes I can just delete the old interaction tests. Oh and I only write these tests when I find them useful, so far mainly for controllers/services and not so much for business/domain logic.

    In addition I find manual stubs useful but only when the stub is being used quite widely, basically where I’m using stubs for conveniance. For example mocking out our repositories to keep our tests fast.

  11. Avatar
    Esko Luontola about 5 hours later:

    There may be a dance of several method calls between a few different objects; but the test is oblivious since it only checks the answer. Therefore the tests are not strongly coupled to the solution and are not fragile.

    +1

    It’s best to keep the tests as decoupled from the implementation details as possible. That makes it easier to refactor the code – then the tests don’t need to change when the implementation is changed.

  12. Avatar
    Derek Greer about 6 hours later:

    There are several flaws with the reasoning provided in this argument. First, the initial example you set forth seems to be more a reflection on the design of the system under test and the testing approach in general than their use of the mocking framework. Your assertion that the team’s use of a mocking framework somehow led to this design is absurd. Were they to have restricted themselves to hand-rolled mocks and stubs, the resulting design and test would have been just as bad if not worse. This example serves no purpose but to prejudice the reader in preparation for your following arguments.

    Concerning your FitNesse test example, quite frankly I had more trouble determining the intent of your test due to your testing style than your use of the mocking framework. For instance, from looking at the test, I was confused what was actually meant by no service name being present. It wasn’t until I looked at your positive test and saw that what you were actually testing for was the absence of something within the properties that I understood what the test was actually verifying. Of course, when using a bag of values like this you can’t very well explicitly declare that the service name is null as you might with setting a property or method call, but this can be alleviated with a better testing style.

    Consider the following example using Machine.Specifications with Moq:

    http://pastie.org/791697

    The test reads:

    When credentials are requested with no service name property set
    ...Because the GetServiceCredentials() method was called
    .....The SUT should fail to retrieve a service name
    .....The SUT should not call the GSManager’s CreateName method
    .....The SUT should not return credentials

    I added the explicit check that the service name wasn’t retrieved for the benefit of expressing clear intent, but the name of the class actually goes a long way in communicating to the user that the key qualifier is the absence of the service name key. You set forth your final negative test as an example of how much cleaner your example was than your previous example using the mocking framework, but I challenge you to argue that this:

    @Test
    public void credentialsShouldBeNullIfNoServiceNameWithHandRolledMocks() throws Exception {
      NegotiateAuthenticator authenticator = new NegotiateAuthenticator(managerSpy, properties);
      assertNull(authenticator.getServerCredentials());
      assertFalse(managerSpy.createNameWasCalled);
    }

    Is clearer than this:

    It should_not_call_create_name = () => _mockManager.Verify(m => m.CreateName(), Times.Never());
    It should_not_return_credentials = () => _credentials.ShouldBeNull();

    Also, because the context of your test is now smeared across several classes, it’s ultimately harder to understand. Ultimately, I think you’ve failed to demonstrate how hand-rolling your mocks is a cleaner approach.

  13. Avatar
    Harley Pebley about 6 hours later:

    Thanks for this article. Some of your tweets earlier this week on this topic intrigued me. I hoped you were going to write more about it.

    On the topics, I agree and disagree.

    Regarding testing implementation (interaction) versus interface (results), I agree. Tests are much less fragile when testing the outward facing results. Our team has had some heated discussions about the relevance of directly testing private and protected methods. Fortunately, over time I think we’re coming to a good balance.

    However, regarding limiting the use of mocks, I disagree. A number of years ago I wrote software in an environment which did not have any mocking framework. (Delphi 5/Win32) All mock objects were hand-rolled; it was pretty painful with things that looked like your MockGSSManager.

    (As an aside, I find it interesting you said: “And, of course, I can put this code somewhere where nobody had to look at it unless they want to.” Reminds me of your tweet a couple days ago: “The desire to hide code is really a still small voice telling you to decouple.”)

    Now, with Rhinomocks in C#, testing is almost fun; it’s certainly more satisfying with less “busy” code. And, the mock’s code is right there close to, if not in, the test, rather than spread in another class.

    Anyway, thanks for provoking thought.

  14. Avatar
    Neil Mosafi about 6 hours later:

    Doesn’t this indicate a lack of expressiveness of the mocking framework you are using? I find Rhino Mocks fairly readible. That final verify you just did there could have been written using the following syntax:

    manager.AssertWasNotCalled(m => m.CreateName(null,null,null), 
                               c => c.IgnoreArguments());

    It’s fairly expressive. The use of Expression Trees in C# definitely help here.

  15. Avatar
    Aaron Day about 10 hours later:

    By using a mock framework you are able to test exactly the proper functioning of a method rather than any dependencies of the method. Certainly you can get the same effect by hand-rolling your test doubles, but it seems like extra work.

    I still do not see the harm in the use of the mock framework. Hand rolling a class adds code which has to be maintained, and as much as I like writing code I always want to maintain less of it.

    The idea that using mocks enable you to write code that have a high degree of coupling is a strawman. Either mocks or hand rolled class allow you to do it. The warning sign may be more acute with hand rolling, but that is the case when hand crafting anything.

    Perhaps mocks make it easier to write code with a higher degree of coupling, but I think they also make testing easier. A good mock library is used consistently throughout the testing code base, where a hand rolled implementation is likely to be more ad-hoc and customized to each test. Consistency improves readability, and in the end isn’t that one of the goals of clean code?

  16. Avatar
    Philip Schwarz about 10 hours later:

    From xUnit Test Patterns – Refactoring Test Code (2007):

    The jury is still out on whether Behaviour Verification is a better approach than State Verification. In most cases, State Verification is clearly necessary; in some cases, Behaviour Verification is clearly necessary. What has yet to be determined is whether Behaviour Verification should be used in all cases or whether we should use State Verification most of the time and resort to Behaviour Verification only when State Verification falls short of full test coverage.
  17. Avatar
    Philip Schwarz about 10 hours later:

    From xUnit Test Patterns – Refactoring Test Code (2007):

    State Verification comes naturally when we are building the software inside-out. That is, we build the innermost objects first and then build the next layer of objects on top of them…
    A common application of Behaviour Verification is when we are writing our code in an outside-in manner. This approach, which is often called need-driven development, involves writing the client code before we write [its dependencies]...

    The main objection to this approach is that we need to use a lot of TestDoubles to write tests. That could result in Fragile Tests, because each test knows so much about how the software under test is implemented.

  18. Avatar
    Philip Schwarz about 11 hours later:

    Hello Uncle Bob. Interesting post, as usual.

    You said:
    Lately I have seen several books and articles that present TDD through the lens of a mocking framework. If you were a newbie to TDD, these writings might give you the idea that TDD was defined by the use of mocking tools, rather than by the disciplines of TDD.

    Is Growing OO Software, Guided by Tests one of these books?

    Here is an extract:
    We appear to have painted ourselves into a corner. We are insisting on focused objects that send commands to each other and don’t expose any way to query their state, so it looks like we have nothing available to assert in a unit test. One option is to replace the target object’s neighbours in a test with substitutes, or mock objects. We can specify how we expect the target object to communicate with its mock neighbours for a triggering event; we call these specifications expectations...

    With this infrastructure in place, we can change the way we approach TDD. ... We can use the test to help us tease out the supporting roles our object needs, defined as Java interfaces, and fill in the real implementations as we develop the rest of the system. We call this interface discovery.

  19. Avatar
    Fernando Zamora about 14 hours later:

    In all we do our job is to reduce complexity. I think that when things become overly complex that in it self should be a design smell. This may mean that if you are creating an entire class to do something that could have been done with one line of mocking code, then you are adding unnecessary complexity. If on the other hand your mocking code looks like Uncle Bob’s mock example… well that smell may really be just pointing to a bigger design issues.

    @fernandozamoraj

  20. Avatar
    Gil Zilberfeld about 15 hours later:

    Uncle Bob,

    Charged topic. I/m not going to talk about test-after, in this case, you’re bound to run into complex scenarios where it makes much more sense (time saving wise) to use a framework.

    I usually go with the Act-Assert-Arrange method. Set up the fakes after they reveal themselves. I can use both hand-rolled or Isolator, and that’s if I need it – the test tells me if I do. But eventually, I choose the framework. It’s easier, and readability is better.

    By the way, hiding the manual mock code somewhere, doesn’t make it go away. When something breaks (and it eventually will, you’ll need to go in and fix it), and the readability is hampered in this case – it doesn’t let you fix the code quickly.

    @gil_zilberfeld

  21. Avatar
    J. B. Rainsberger about 16 hours later:

    This bit of bad logic disappoints me, Bob.

    “That statement does not require my poor readers to understand anything about Mockito. Of course it does require me to hand-roll a manager mock.”

    No. If I wanted to write assertTrue(manager.createNameWasNotCalled());, then I would delegate that method to the corresponding assert never called in my mock framework of choice.

    I understand that you favor rolling your own over using the frameworks. I agree that people shouldn’t use a tool without understanding its purpose, and that people do very strange things with mock frameworks. Let me ask you: since people do very strange things with tests, such as write them “just for coverage” without assertions, why not encourage people to roll their own test framework and avoid JUnit?

  22. Avatar
    Rob Bowley about 17 hours later:

    Respectfully I think you’re argument is somewhat flawed, as many others here have pointed out.

    You’re clearly from the classicist school as Fowler put it in his infamous “Mocks aren’t Stubs” article, which is fine. It’s a preference of style, but little more than that as both approaches can end up with desired or undesired results if followed in a dogmatic and/or naive manner.

    There’s nothing wrong with advocating a style per se, but that’s not what you’re doing here. You’re writing off the “mockist” school (a la Freeman & Pryce) altogether.

    In your previous article on IoC containers, the framework argument you use again here was justified, but mocking is /not/ a framework as you misleadingly imply. Like TDD, Mocking is an approach to writing software

    This article is about as relevant as if you’d written an article with lots of examples of bad unit tests and blamed it all on using JUnit instead of writing your own test framework.

  23. Avatar
    Ittay Ophir about 22 hours later:

    Good article, and nice set of enlightening comments.

    I do not have a lot to add here, but I do have to say something, because, well, the code in the first example is mine.

    The truth is this:

    Using mock in this case have NOTHING to do with misunderstanding of TDD.

    I wanted to describe a 7 years old code, that was never designed properly, and had 0 tests attached to it. I did it using unit tests, which looked like a good way to explore.

    I started out with “hand-rolled-mocks” as you call it (I just refer to it as “Doubles”), and it took me FOREVER. The problem was the highly coupled code with the bad responsibility separation, that made it almost impossible to make a single test pass.

    Then I discovered RhinoMocks (and later, Moq), and writing test-after went down from forever to forever-minus-one.

    Today we use the Moq widely, mostly to make it easy to keep the separation between different layers. The AAA approach make it easy to minimize behavioral coupling, and hand-rolled-mocks will usually hide the mocking framework, to leave the interface exposed and testable.

    For now, I see 2 main advantages in using Doubles over Mocks:

    1) Every time the interface changes, the double will break. It will emphasis what package depends on what service.

    2) It keeps all mocked behavior in one place (at least per package). This might help protect the tests itself from inconsistent behavior assertion between test cases.

    Thanks bob, I’m going back to build my time-machine…

  24. Avatar
    Sebastian Kübeck about 24 hours later:

    I have to agree with J. B. Rainsberger. The question whether to use a mock library or not is not the problem in the second example. It’s the test itself.

  25. Avatar
    Jeffrey Palermo 1 day later:

    I have only been doing TDD for 5 years,but that is enough time to have Already drastically overused mocks and RhinoMocks. I have learned this lesson the hard way. I am glad you wrote about it an attempt to help others avoid tar pit test suites. I haven’t used Fitnesse since 2006 but am looking at it again now.

  26. Avatar
    Andras Hatvani 1 day later:

    Another fundamental topic covered in an excellent article!

  27. Avatar
    Steve Py 1 day later:

    I agree with your view on the first example where the use of a mocking framework can lead down bumpy roads when used incorrectly. However, that’s no different than any other tool.

    Manually rolling a stub is one thing. Manually rolling a mock is another. Even so, I personally use Moq to provide both stubs and mocks without an ounce of trouble due to overly tight coupling. I don’t see how the use of a hand-rolled stub would be any easier to understand in the context of a test than a simple, to the point Moq-provided stub.

  28. Avatar
    John Sonmez 1 day later:

    Hmm, I’m not entirely convinced by your post here, but it has swung me more on the hand coded side than I was before. The biggest problem that I have with hand rolling the mocks is that you may need different behavior in different tests, then you would have to have multiple hand rolled mocks that do different things, which can be confusing and create a maintenance problem.

    On the other hand, you do present a really good point. The test where you had hand-rolled the mock was much easier to read and understand.

  29. Avatar
    micah@8thlight.com 1 day later:

    Thanks for writing this. I’ve been meaning to write a similar blog for over a year… now I can just point to yours.

    You advise to “use a framework only when that framework will give you a significant advantage.” You also provide the statistic that only 11/277 test files in FitNesse use Moquito. That’s not even 4%. 4% is hardly a significant advantage. In my opinion, the FitNesse source code would better off without the use of Moquito all together.

    Viva Hand-Rolled Mocks!

  30. Avatar
    Rogério 3 days later:
    The following version of the test can be written with JMockit Annotations, a “state-oriented” mocking API:
    class GSSManagerSpy extends MockUp<GSSManager>
    {
       boolean createNameWasCalled;
    
       @Mock // could be @Mock(invocations = 0) instead
       GSSName createName(String s, Oid oid) {
          createNameWasCalled = true;
          return null;
       }
    }
    
    @Test
    public void credentialsShouldBeNullIfNoServiceName(GSSManager dummyManager) throws Exception
    {
       GSSManagerSpy managerSpy = new GSSManagerSpy();
    
       NegotiateAuthenticator authenticator = new NegotiateAuthenticator(dummyManager, properties);
       assertNull(authenticator.getServerCredentials());
       assertFalse(managerSpy.createNameWasCalled);
    }
    
    The “dummyManager” parameter tells JMockit to create a non-strict mock of the specified type, which is passed to the test method when JUnit runs it.

    Close enough?

  31. Avatar
    Rogério 3 days later:
    ... but it could also be written like this:
    @Test
    public void credentialsShouldBeNullIfNoServiceName(final GSSManager manager) throws Exception
    {
       NegotiateAuthenticator authenticator = new NegotiateAuthenticator(manager, properties);
       assertNull(authenticator.getServerCredentials());
    
       new Verifications() {{
          manager.createName(anyString, any); times = 0;
       }};
    }
    
    ... which is simpler.
  32. Avatar
    Eric 4 days later:

    Hi,

    There are a few points on this article that I wish to comment:

    1. Hand-rolled mocks

    And, of course, I can put this code somewhere where nobody had to look at it unless they want to.

    I’m not sure this is so harmless as it seems to be. The best code is still the code that’s not written. Whether tools can help you or not, you’ll still have to manage those “dummy” classes, know about them, version-control them, refactor them,...

    2. Design

    I agree with you that too much stubbing/mocking in your tests may be a sign that there are some design issues in your code, but I’d like to know:

    Lately I have seen several books and articles that present TDD through the lens of a mocking framework.

    As someone else asked, are you’re referring to “Growing OO Software, Guided by Tests” as one of those books?

    The view that the authors of that book are advocating is really about the tell, don’t ask principle. In that view mocks are considered as a discovery/design technique which is, IMO, closer to the original OO approach than any of the code I see nowadays.

    For example, the FitNesse test example you’re showing is all about testing the getters of an Authenticator. That doesn’t look very OO, in a behavioral sense and I would like to see how the Authenticator class could be reworked in that perspective.

    3. Testing

    I’m wondering why you’re not only testing that the returned credentials are not null in the “credentialsShouldBeNonNullIfServiceNamePresent” test, as the name implies?

    Also, why do you need to verify that “verify(manager).createCredential” was called? If you really get the credentials you’re expecting from the Authenticator, why would you need to check where they come from? Isn’t it one more way to couple your test to the implementation?

  33. Avatar
    Donnie 8 days later:

    It is a very debatable topic. But as you are under a necessity to memorize about testing or purchase a magnificent paper about it, you can click online essay writers

  34. Avatar
    Manne Fagerlind 15 days later:

    I agree with most of the things that Uncle Bob says, but creating a test double manually for the sake of readability is imho overkill. It may also confuse the reader, who will have to look at the test double class to see that createNameWasNotCalled() is not a member of the GSSManager class.

    Instead I’d suggest extracting the verification to its own method, like so:

    private void verifyCreateNameIsNotCalled() { verify(manager, never()).createName( anyString(), (Oid) anyObject(), (Oid) anyObject()); }

    As previously said, Mockito usually makes for more readable verification code, but this is another to make the test work as documentation.

  35. Avatar
    Tomas about 1 month later:

    In the final two sentences in this blog post it is claimed that you keep coupling between code and tests low by testing outcomes instead of mechanism.

    I think object-oriented development is about allocating behavior to objects. The interactions between those objects should often be a part of the method contract for the method using the collaborating objects to perform its task. In other words, the interactions should not always be considered as implementation details nor “high” coupling just because there is coupling. Certain coupling is indeed desired, while “high” coupling is not desired, but it is not obvious where the limit is between appropriate coupling and too high coupling.

    For example, if a method of an observable class will notify an observer during certain conditions when the method is invoked, then it should be communicated in the javadoc (or something similar for other languages than java) as a significant and expected consequence of invoking the tested method. Consider the FitNesse Fixture method “protected void interpretTables(Parse tables) {” which contains the code line “listener.tableFinished(tables);” ( http://github.com/unclebob/fitnesse/blob/20100103/src/fit/Fixture.java )

    How could such a method have been developed with true TDD, with one of the rules being: “Developers are not allowed to write production code until they have written a failing unit test.” ( quoted from https://objectmentor.com/omSolutions/agile_xp_differences.html ) Before being allowed to write the code line “listener.tableFinished(tables);” there should have been a failing (red) test, which should then have been fixed (green) by adding that code line, i.e. before the above mentioned production code line was added, then the TDD code should have been written to verify (but initially fail) that the method becomes invoked.

    In other words, there should have been some truly TDD-written test code such as “verify(fixtureListenerMock).tableFinished(tables);” which should have failed before actually being allowed to add the invocation “listener.tableFinished(tables);” to make the test pass.

  36. Avatar
    gsainagendaprasad@gmail.com about 1 month later:

    i have a very uncommon scanerio, i am using mocking in my unit test case , i have total 9 methods out of which one is failing once i run ALL at once , but passing when i run it alone or debug it. may i know the reason please

  37. Avatar
    UGG Classic Metallicaz` 2 months later:

    welcome to http://www.uggboots4buy.com/ l,will have a unexpection.

  38. Avatar
    Kooba Handbags 2 months later:

    Living without an aim is like sailing without a compass. with a new http://www.handbags4buy.com/ idea is a crank until the idea succeeds.

  39. Avatar
    highkoo ugg boots 2 months later:

    all products are high quality but low price,welcome to http://www.uggjordanghd.com/.

    >
  40. Avatar
    moncler clearance 2 months later:

    Very quietly I take my leave.To seek a dream in http://www.edhardy-buy.com/ starlight.

  41. Avatar
    parça TL kontör 3 months later:

    I like This site! Thank you for your information…

  42. Avatar
    parça TL kontör 3 months later:

    I like This site! Thank you for your information…

  43. Avatar
    Blu-ray ripper mac 3 months later:

    Free download Blu-ray to iPad Mac

  44. Avatar
    std symptoms 3 months later:

    How can I download this? I want this.

  45. Avatar
    Fat Burning Furnace Scam Review 4 months later:

    How to get many out comes from the single ways.

  46. Avatar
    five finger shoes 4 months later:

    i believe you are good at writing. a good writter need many good topics

  47. Avatar
    ucuz biber hapi 4 months later:

    Thanks a lot for this document. I am happy to find your distinguished way of writing the post. Now you make it easy for me to understand and implement. Thanks for sharing with us.

  48. Avatar
    risk assessments 4 months later:

    You make a good case for this article you have done good work thanks

  49. Avatar
    Games 4 months later:

    Thanks for writing this post !!

  50. Avatar
    jewellery 5 months later:

    virtual expos online from the comfort of your own home.

  51. Avatar
    mlb jersey 5 months later:

    Thanks for writing this post !!

  52. Avatar
    baseball jersey 5 months later:

    You make a good case for this article you have done good work thanks

  53. Avatar
    wholesale nhl jerseys 5 months later:

    thank you for sharing with us

  54. Avatar
    Area 51 5 months later:

    Wow.

  55. Avatar
    coach bags 5 months later:

    Such a wonderful post. Thanks for sharing this blog post.

  56. Avatar
    PSP ISO 5 months later:

    Such an amazing tutorial !

  57. Avatar
    Cut-off jeans 6 months later:

    This paragraph bull-puncher skirt using tie-dye skill, look like blue sky, the clouds appear very romantic, unique style, the most suitable match your sweet falbala shirt , let a person cannot help to you to envy, sweet OL style, immediately upon you.

  58. Avatar
    Androgynous fashion 6 months later:

    A white coat is white knitting condole belt small unlined upper garment, the snow outside with little organ ruffle capacious fly like a bat sleeve cuff abnormal chic, expand the arc led visual effect, appear very comfortable, add a fair maiden temperament, down the little blue shorts tie-in bright female elegant line, the waist with sleeves extension before joining place adorn, snow spins the style that can give the city offers a lot of inspiration OL people, Dress up the different temperament and successfully leisure and formal, neuter female fusion with proper position.

  59. Avatar
    location automobile 6 months later:

    Nicely presented information in this post, I prefer to read this kind of stuff. The quality of content is fine and the conclusion is good. Thanks for the post.

  60. Avatar
    immobilier entre particuliers 6 months later:

    good post thanks a lot

  61. Avatar
    load cell 6 months later:

    I found a lot of great points in this post, nice

  62. Avatar
    Handbags 6 months later:

    Great post. Thank you for this important info!

  63. Avatar
    dentist in acton 6 months later:

    Was very pleased to find this site.I wanted to thank you for this great read!! I definitely enjoying every little bit of it and I have you bookmarked to check out new stuff you post.

  64. Avatar
    kathy 6 months later:

    You make a good case for this article you have done good work thanks

  65. Avatar
    replica jerseys 6 months later:

    nice article, thanks for sharing this whit us! if you want to buyreplica jerseys, just find me on my

    website..

  66. Avatar
    Employee Performance Evaluation 6 months later:

    Another fundamental topic covered in an excellent article! Thanks for this post!

  67. Avatar
    liveyou 6 months later:

    Guide on how to copy dvd to ipad, how can I copy files onto an ipad, how to copy a dvd movie to ipad, how to copy files from computer to ipad.

  68. Avatar
    türkçe porno 7 months later:

    sende saol be dostum

  69. Avatar
    wood splitter 7 months later:

    Its always good to learn tips like you share for blog posting. As I just started posting comments for blog and facing problem of lots of rejections. I think your suggestion would be helpful for me. I will let you know if its work for me too.

    Thanks and keep post such a informative blogs.

  70. Avatar
    chaussures sport 7 months later:

    Chaussures de Sport Chaussures de Sport Chaussures Sport Chaussures Sport Nike chaussures hommes Nike chaussures hommes Nike chaussures femmes Nike chaussures femmes Nike chaussures enfants Nike chaussures enfants

  71. Avatar
    Free Hosting With MYSQL 7 months later:

    Great piece of collection.Truly it’s very difficult to choose the best out of all because these are the topmost I have seen so far.

  72. Avatar
    cheap vps 7 months later:

    Why so austere? Why shouldn’t you use frameworks “just because they are there”? Because frameworks always come with a cost. They must be learned by the author, and by all the readers. They become part of the configuration and have to be maintained. They must be tracked from version to version. But perhaps the most significant reason is that once you have a hammer, everything starts to look like a nail. The framework will put you into a constraining mindset that prevents you from seeing other, better solutions.

    Consider, for example, this lovely bit of code that I’ve been reviewing recently. It uses the Moq framework to initialize a test doublecheap VPS

  73. Avatar
    pregnant after a miscarriage 7 months later:

    If your looking into trying to get pregnant after a miscarriage but you are not having any luck, Then I’m glad you found my blog and I strongly suggest you continue reading…

  74. Avatar
    taxi bucharest business class 7 months later:

    Prin serviciile pe care le oferim, dorim sa intampinam nevoile clientilor nostri – turisti si parteneri de afaceri – astfel încat sa devenim un partener de incredere in calatorii de afaceri si vacante de succes…

  75. Avatar
    jeux concours 7 months later:

    good post and blog i love it much thanks a lot for all !!!!

  76. Avatar
    Otopeni airport taxi 7 months later:

    Taxi Bucuresti operates in Bucharest, but you can make a reservation for any destination you choose. We can offer you a few Services, but if there other things that we could do for you, do not hesitate to write to us

  77. Avatar
    Tony 7 months later:

    Thanks for sharing. Quality information here.

  78. Avatar
    devenir consultant 7 months later:

    good share and post.I love read this blog.

  79. Avatar
    craigslist tampa 7 months later:

    I prefer to read this kind of stuff.I wanted to thank you for this great read! I definitely enjoying every little bit of it and I have you bookmarked to check out new stuff you post.Thanks for posting. craigslist tampa

  80. Avatar
    Margarita Machine Rental San Diego 7 months later:

    Looking for party rentals in San Diego? Carnival Entertainment’s Party Rental World is your premier party rentals source for kids’ birthday parties, weddings, school carnivals, street fairs, and company picnics in San Diego.

  81. Avatar
    Power4Home 7 months later:

    I am a webmaster of Power4home and Greendiyenergy and Prostacet I hope we could meet each other soon. I want to thank you because you helped me solve my problem especially in the coding part.

  82. Avatar
    LV belt 7 months later:

    LV belt, LV belts, LV belts for men, LV Mens belts.
    Some actually seem like they are created with space creatures – not real women – in mind. But this fall, designers rolled out a multitude of great wearable looks.

  83. Avatar
    LV belt 7 months later:

    LV belt, LV belts, LV belts for men, LV Mens belts.
    Some actually seem like they are created with space creatures – not real women – in mind. But this fall, designers rolled out a multitude of great wearable looks.

  84. Avatar
    Hermes belt 7 months later:

    Hermes belts, Elegant Hermes belt, Fashion Hermes belts for men, Hermes mens belt.
    Great post,just as Great belts Sale time,you will enjoy the shopping time by belts Sale online store,and buy belts from belts Sale online store.

  85. Avatar
    louis vuitton wallet 7 months later:

    louis vuitton wallet, louis vuitton wallets, mens louis vuitton wallet, women louis vuitton wallet.
    Fashion, a general term for the style and custom prevalent at a given time, in its most common usage refers to costume or clothing style. The more technical term, costume, has become so linked in the public eye with the term “fashion” that the more general term “costume” has in popular use mostly been relegated to special senses like fancy dress or masquerade wear, while the term “fashion” means clothing generally, and the study of it.

  86. Avatar
    dupont lighter 7 months later:

    dupont lighter, dupont lighters, st dupont lighter, s.t. dupont lighters. Great post,just as Great belts Sale time,you will enjoy the shopping time by belts Sale online store,and buy belts from belts Sale online store. Price Guarantee, sale now.time limited.seize the chance.

  87. Avatar
    Men’s belts 7 months later:

    Men’s belts, LV men’s belts, Fashionable Gucci men’s belts, Attractive style Hermes men’s belts.
    This florist in Kensal Rise is an olfactory sensation, overflowing with flowers, foliage and stacks of ancient-looking vases and crockery. It all looks as if Vicky, the owner, has picked the flowers fresh from the meadows that day.

  88. Avatar
    supplynflshop 7 months later:

    so good post i like it china nfl jerseys

  89. Avatar
    WPClubs 7 months later:

    Thanks for the tips, you’ve been very helpful!

  90. Avatar
    architecture service 8 months later:

    You can display subtitles in any size, any position on the video, move them dynamically with the keyboard, adjust the delay. Simple!

  91. Avatar
    Paleo Cookbook 8 months later:

    The usage of mock framework is not an issue. Coding is fun but it’s better to minimize them to reduce bugs.

  92. Avatar
    scented rocks | scented crystals | crystal potpourri">john 8 months later:

    Framework is pretty easy, a little messy overall scented rocks | scented crystals | crystal potpourri

  93. Avatar
    facebook, caustic soda suppliers | caustic soda solid suppliers "> soda 8 months later:

    Great post,just as Great belts Sale time,you will enjoy the shopping time by belts Sale online store,and buy belts from belts Sale online store.

  94. Avatar
    facebook, Trisodium Phosphate manufacturers | ccnt 8 months later:

    Great post,just as Great belts Sale time,you will enjoy the shopping time by belts Sale online store,and buy belts from belts Sale online store.

  95. Avatar
    facebook, Trisodium Phosphate manufacturers | feed 8 months later:

    Great post,just as Great belts Sale time,you will enjoy the shopping time by belts Sale online store,and buy belts from belts Sale online store.

  96. Avatar
    facebook, Trisodium Phosphate manufacturers | feed 8 months later:

    Great post,just as Great belts Sale time,you will enjoy the shopping time by belts Sale online store,and buy belts from belts Sale online store.

  97. Avatar
    facebook, silica suppliers | Hydrated silica suppliers | silica 8 months later:

    very informative good post.I love read this blog.

  98. Avatar
    facebook, Trisodium Phosphate manufacturers | ccnt 8 months later:

    very informative good post.I love read this blog.

  99. Avatar
    facebook, feed additives importer| feed additives manufacturers | feed additives suppliers |">feed 8 months later:

    very informative good post.I love read this blog.

  100. Avatar
    <a href=http://www.nike-requin.com>nike requin</a> <a href=http://www.pphog.com>polo lacoste</a> 8 months later:

    very informative good post.I love read this blog.

  101. Avatar
    Frontierville Cheats 8 months later:

    Great things come from humble beginnings.

  102. Avatar
    qiem 8 months later:

    reat belts Sale time,you will enjoy the shopping time by belts Sale online store,and buy belts from belts Sale online store. news , Style and info

  103. Avatar
    Serotonin Levels 8 months later:

    Great! Thanks for the great article posting and your all effort. I think the above article is valuable for all concerned people about this topics.For me the Informations are really really useful for my research. I’ve Bookmarked this page for future reference.

  104. Avatar
    lv bags 8 months later:

    Louis Vuitton 2011 fall winter women and men’s experience of inclusive adventure ,LV about a month will launch new products, new style,Louis Vuitton Star Diamond put on the back burner,

  105. Avatar
    adikshoes 8 months later:

    This article gives the light in which we can observe the reality. This is very nice one and gives in-depth information.

  106. Avatar
    nikejordanair 8 months later:

    The blog is really appreaciable and i like to keep on visiting this site once again that it would help me in further thanks for sharing the info.

  107. Avatar
    newairjordanhunt 8 months later:

    Thank you for the information I agree with you I became fan of you and would love to visit your blog regularly.

  108. Avatar
    footwear 8 months later:

    The more mocking frameworks that appear, the more I see them enthusiastically used. I think the above article is valuable for all concerned people about this topics.

  109. Avatar
    newwomeninjeans 8 months later:

    Great article though so thanks it’s very interesting you did lot of research before posting any new content.

  110. Avatar
    nhl-nfljerseys 8 months later:

    I don’t have anything else to include on to your article – you basically spelled everything out. great read.

  111. Avatar
    newnikesbdunks 8 months later:

    I would like to thank you for this post. I recently come across your blog and was reading along.

  112. Avatar
    picknikeairmax 8 months later:

    There are some very great sources here and thank you for being so kind to post them here. So we can read them and give our opinion on subject.

  113. Avatar
    Internet Marketing Companies 8 months later:

    Nice topic and information about “Mocking Mocking and Testing Outcomes. “

  114. Avatar
    iphone Leather 8 months later:

    Really like your blog content the way you put up the things…I’ve read the topic with great interest and definitely will stick your blog routinely for other great posts.

  115. Avatar
    Blog Literature 8 months later:

    Its been looking very effective source for me. I haven’t use it before but now i am going to test it. I hope it will prove to be the best for me.

  116. Avatar
    Reply: 8 months later:

    work from home How do you manage to do this. I have a level of frustration with this testing. I am trying to concentrate and understand it to best of my ability.

  117. Avatar
    humhsky@gmail.com 8 months later:

    Fantastic website http://www.caps-store.com I will bookmark it and come back later. Thanks for posting this. Very nice recap of some of the key points in my talk. I hope you and your readers find it useful! discount new era hats Thanks again.

  118. Avatar
    monster energy hats wholesale 8 months later:

    I like the side of the article, and very like your blog, to write well and hope to continue your efforts, we can see more of your articles

  119. Avatar
    wholesale dallas cowboys jerseys 8 months later:

    Do you want to be more fashion, more charming,just do a little thing. A exciting purchasing is ready to go! Just pay attention to. We are specializing in providing new era hats ,new era caps ,one industries hats,rockstar energy hats,Monster Energy Hats which would be your final choice. Just do what you want alonging with your active heart.

  120. Avatar
    championship jackets 8 months later:

    Dear friends, thank you for visiting our website ,we are an international trade company,which specializes in NFL jerseys.We wholesale jerseys at competitive price,providing a huge range of NFL jerseys of different teams,such as Arizona Cardinal,Atlanda Falcons ,Baltimore Ravens,etc.You can buy cheap championship jackets . Welcome to visist here . Website: http://www.sportsjerseysshop.com

  121. Avatar
    championship jackets 8 months later:

    Dear friends, thank you for visiting our website ,we are an international trade company,which specializes in NFL jerseys.We wholesale jerseys at competitive price,providing a huge range of NFL jerseys of different teams,such as Arizona Cardinal,Atlanda Falcons ,Baltimore Ravens,etc.You can buy cheap championship jackets . Welcome to visist here . Website: http://www.sportsjerseysshop.com

  122. Avatar
    wholesale new orleans saints jerseys 8 months later:

    I like the side of the wholesale new orleans saints jerseys and very like your blog, to write well and hope to continue your efforts, we can see more of your articles.

  123. Avatar
    Emergency Fuel 8 months later:

    For me the Informations are really really useful for my research. I’ve Bookmarked this page for future reference.

  124. Avatar
    Samsung UN40C7000 8 months later:

    Nice, thank for the article abouts Mocking Mocking and Testing Outcomes

  125. Avatar
    new era fitted hats wholesale 8 months later:

    http://www.newerahatstore.com Recently established in 2006,http://www.newerahatstore.com is the website of a company that has been in business in the Chinese market for about 3 years.We are new era fitted hats wholesale manufacture in china, Our company specialize in supplying new era hats,monster energy hats,dc shoes hats,red bull hats,famous hats,jordan hats,etc. We pay attention to our products quality and service

  126. Avatar
    New England Patriots AFL 50TH Anniversary Tom Brady #12 Team Jerseys/luohu@gmail.com 9 months later:

    Hiya guys.I just come to this forum.Good luck everyone? Thank you for the suggestion.

  127. Avatar
    Corum Replica Watches 9 months later:

    Corum Replica Watchesis the website of a company that has been in business in the Chinese market for about 3 years.We are new era fitted hats wholesale manufacture in china, Our company specialize in supplying new era hats,monster energy hats,dc shoes hats,red bull hats,famous hats,jordan hats,etc. We pay attention to our Corum Replica Watches quality and service

  128. Avatar
    Carbon Fiber Sheets for sale 9 months later:

    Thank you for this step by step instruction. Great ideas and tips. I’ve always had trouble finding a free place to blatantly advertise my products and services so I made one.

  129. Avatar
    chlamydia symptoms 9 months later:

    Read about chlamydia symptoms and how to treat chlamydia.

  130. Avatar
    Rangemaster 110 9 months later:

    Nice, thank for the article about Mocking Mocking and Testing Outcomes

  131. Avatar
    Bucharest Apartments 9 months later:

    Hi Your blog seems very nice. Since you encouraged lot to ask questions, here I am. :) I am new to unit testing tools. Question: Is it possible to test a servlet using PowerMock? If yes, would you be kind enough to provide a tutorial for the same?

  132. Avatar
    Hotel Abano Terme 9 months later:

    Very interesting ideed.

  133. Avatar
    http://www.beuggboots.com 9 months later:

    Ugg, a legendary brand, first saw Ugg Boots simple-minded person will on thecartoon’s appearance is not cold, Property management is a UGG Boots On Sale ystematic project.

  134. Avatar
    Renold 9 months later:

    I like the side of the wholesale new orleans saints jerseys and very like your blog, to write well and hope to continue your efforts, we can see more of your articles. Weed Me

  135. Avatar
    Lander 9 months later:

    I have only been doing TDD for 5 years,but that is enough time to have Already drastically overused mocks and Rhino-mocks. I have learned this lesson the hard way. I am glad you wrote about it an attempt to help others avoid tar pit test suites. I haven’t used Fitness since 2006 but am looking at it again now.

  136. Avatar
    buy furnace wholesale 9 months later:

    Nice Article!Great information thanks for sharing this with us. In fact in all posts of this blog their is something to learn . your work is very good and i appreciate your work and hopping for some more informative posts.Can I buy furnace wholesale from anywhere.

  137. Avatar
    Tenant Screening 9 months later:

    Credasys is a full service background information provider specializing in tenant screening, employment screening and mortgage credit checks.

  138. Avatar
    ChrisBuld 9 months later:

    Hi Your blog seems very nice. Since you encouraged lot to ask questions, here I am. :) I am new to unit testing tools. Question: Is it possible to test a servlet using PowerMock? If yes, would you be kind enough to provide a tutorial for the same? Thank You

  139. Avatar
    ChrisBuld 9 months later:

    Thank you for this step by step instruction. Great ideas and tips. I’ve always had trouble finding a free place to blatantly advertise my products and services so I made one. Do you want to be more fashion, more charming,just do a little thing. A exciting purchasing is ready to go! Just pay attention to. We are specializing in providing new era hats ,new era caps ,one industries hats, rock star energy hats,Monster Energy Hats which would be your final choice. Just do what you want a longing with your active heart.

  140. Avatar
    KARATE KID 2010 ONLINE 9 months later:

    Those tips really made me think! Cool blog bro, may god bess you!

  141. Avatar
    Sam 9 months later:

    I never knew that the number of mocking frameworks cell phone number lookup magic of making up review instrumental beats has proliferated in recent years, good thing i read this article.

  142. Avatar
    http://www.hats-trade.com/chicago-white-sox-hats-c-8.html 9 months later:

    We have thousands of Chras Bromn Hats, Monster Energy Hats, Dc Shoes Hats, Red Bull Hats,New Era Caps,NFL Hats And Famous Hats at cheap price for Wholesale.

  143. Avatar
    http://www.bebestugg.com 9 months later:

    Property management is a UGG Boots On Sale ystematic project. Transition from Sheepskin Boots he hundreds of times to a new system, Women Ugg Sale eveloping new economic growth point, Australia Boots he difficulty is inevitable. But “the right conferred by the people, Discount UGG Boots right of the people”. Please visit http://www.bebestugg.com/

  144. Avatar
    Christian Boots 9 months later:

    These are not photoshopped in terms of Christian Boots that all the objects and their actions are real Christian Louboutin Sale but might be editied for colors and adjustments. I appreciate to all those talented photographers who Christian Louboutin Boots taken these excellent photos with their efforts, imaginations and creativity to give us a chance to see these photographic wonders from their creative eyes. manolo This list is not long in numbers but I promise you that when you start browsing them Louboutin Shoes in details it will surely refresh you and force you to know more about these Suede Shoes photographers. These are the wonder creations of photographers who use their creativity with High Heels a different angle and approach to get the result that makes a difference.

  145. Avatar
    Christian Boots 9 months later:

    These are not photoshopped in terms of Christian Boots that all the objects and their actions are real Christian Louboutin Sale but might be editied for colors and adjustments. I appreciate to all those talented photographers who Christian Louboutin Boots taken these excellent photos with their efforts, imaginations and creativity to give us a chance to see these photographic wonders from their creative eyes. manolo This list is not long in numbers but I promise you that when you start browsing them Louboutin Shoes

  146. Avatar
    Kev 9 months later:

    I agree the number of the truth about six pack abs mocking frameworks no nonsense muscle building has proliferated in recent years.

  147. Avatar
    oxpdffr 9 months later:

    PDF Créateur est un logiciel libre qui permet de convertir en PDF à partir de n’importe quelle application capable d’imprimer sous Windows. Avec PDF Créateur,vous pouvez créer des fichiers PDF, Postscript et Postscript encapsulé, créer aussi des images à partir de vos documents, fusionner des documents. Après de créer un fichier pdf, vous pouvez personnaliser des paramètres, par exemple: personnaliser des couleurs du filigrane. des polices, etc, et le conserver . Il est très facile de convertir en PDF avec seulement des clics et sa interface distincte. N’hésitez pas à le http://www.oxpdf.fr/download/oxpdfcreator-1_0_0.exe">télécharger, et l’essayez maintenant!

  148. Avatar
    http://www.caps-hat.com 10 months later:

    Welcome to caps-hat.com website. New era caps, new era hats, red bull hats, monster energy hats, baseball hats wholesale. Free shipping to worldwide.

  149. Avatar
    Mike 10 months later:

    interesting piece of beat maker coed, time to see what i can sonic producer do with it.

  150. Avatar
    buy furnace online 10 months later:

    A furnace is a device found in the home and is used to heat it up. With the bitter winter setting in buying a furnace will be on the top list for every one. i also like to buy furnace

  151. Avatar
    buy furnace wholesale 10 months later:

    i like to buy a furnace at wholesale…is there any store from where i buy furnace at wholesale…please recommend me.

  152. Avatar
    http://www.hats-trade.com/rockstar-hats-c-37.html 10 months later:

    Recently established in 2006,http://www. hats-trade.com is the website of a company that has been in business in the Chinese market for about 3 years.We are hats manufacture in china, Our company specialize in supplying new era hats, Monster Energy Hats,dc shoes hats,red bull hats,famous hats,jordan hats,etc. We pay attention to our products quality and service.

  153. Avatar
    Mike G 10 months later:

    I like your pictures they are like how to lose belly fat. I love the picture quality too.

  154. Avatar
    sibelets 10 months later:

    welcome to our website http://www.thumbtrade.com we have many brand products

  155. Avatar
    iPod to iTunes Transfer 10 months later:

    iPod to iTunes Transfer, transfer iPod to iTunes library, is an all-function transfer for iPod users that supports all versions of iPod and other iPhone devices. It can perform like a transfer, a converter, a ringmaker.

    You can free download it and have a try !

  156. Avatar
    http://www.caps-hat.com 10 months later:

    We only provide AAA quality of products. You can make purchases without scrupulosity. All of products can be ordered from our website directly, also, you can contact our professional customer new era hats service to get more support about payment terms, the intention of cooperation etc. The most preferential price: Our competitive price make our customers confident to develop their own business, at the same time, reaping big benefit from this transaction. Our favor tends to the customers who are from United States, Britain, France, Spain, Germany and Australia etc. Welcome to visit here

  157. Avatar
    mesos sale 10 months later:

    9.We all need fresh air.

  158. Avatar
    Foods Rich In Protein 10 months later:

    Consider, for example, this lovely bit of code that I’ve been reviewing recently. It uses the Moq framework to initialize a test double:

  159. Avatar
    polo shirts 10 months later:

    I then flush the current session and clear it. Then I try to re-load the new product from the repository and verify that it is not null

  160. Avatar
    http://www.caps-hat.com 10 months later:

    Best new era caps ,new era hats, delicate monster energy hats, magical nfl hats, one industries hats, rockstar energy hats, Red Bull Caps, The Hundreds Hats, Supreme Hats, DC Comics new era hats are in stock now. Our site provide first-class service and reliable quanlity garantee, do not hesitate to shake hands with us and go with the tide as soon as possible!

  161. Avatar
    Astral Projection 10 months later:

    “The Mount Everest Syndrome” is so true in most situations. We often overlook the best solution for the most convenient one which leads to less than effective results!

  162. Avatar
    annezhao_81@163.com 10 months later:

    NFL is the most popular sports in the world as every knows.The same as nfl jerseys. It has thirty-two teams, which are chosen from all around the USA.NFL is also one of the four main professional football leagues in the North America.It is divided into two parts ,there are AFC and NFC .NFL performs regular matches and tournaments ,that is the reason it attracted so many fans in the whole world. The football season is coming ,it is right time for you to have a satisfied wholesale nfl jerseysto show off your loyalty to your favourite team and players . Come to http://www.nfljerseymvp.com on line , which you will see all lines of youth nfl jerseys with rich colors and styles .You will be happy to see satisfied price in our store. We are here for you all the time.

  163. Avatar
    topjersey@msn.cn 10 months later:

    Welcome to visit our website at http://www.nfljerseymvp.com which you will find a lot of sports jerseys, such as youth nfl jerseys ,NBA jerseys, MLB jerseys, DHL jerseys and so on .And all of them are discounted ,updated. We are factory here ,so we only ask for low price in order to build up business relationship with all of potential customers .We are sure that you will get satisfiedwholesale nfl jerseys after having a great deal with us .

  164. Avatar
    http:// www.stylesc.com/mokexiaoxiao@gmail.com 10 months later:

    good bolg…

  165. Avatar
    Backup iPhone SMS 10 months later:

    You know, If you don’t want to lose your iPhone content. you can backup it.

  166. Avatar
    http://www.hatmvp.com 10 months later:

    Fantastic website http://www.hatmvp.com.I will bookmark http://www.hatmvp.com ">Monster Energy Hats and come back later. Thanks for posting this. Very nice recap of some of the key points in my talk. I hope you and your readers find it useful! discount new era hats Thanks again.

  167. Avatar
    http://www.hatmvp.com 10 months later:

    Fantastic website http://www.hatmvp.com.I will bookmark http://www.hatmvp.com ">Monster Energy Hats and come back later. Thanks for posting this. Very nice recap of some of the key points in my talk. I hope you and your readers find it useful! discount new era hats Thanks again.

  168. Avatar
    http://www.caps-hat.com 10 months later:

    We wholesale hats at competitive price,providing a huge range of hats with different brand name,such as coogi hats, polo hats,Jordan hats,famous hats, red bull hats, new era hats, etc.You can buy cheap hats. Welcome to visist here

  169. Avatar
    Vapor Cigarette 10 months later:

    Very nice recap of some of the key points in my talk. I hope you and your readers find it useful! discount new era hats Thanks again.Vapor Cigarette

  170. Avatar
    Vapor Cigarette 10 months later:

    That statement does not require my poor readers to understand anything about Mockito. Of course it does require me to hand-roll a manager mock. Would that be hard? Let’s try. Vapor Cigarette

  171. Avatar
    laptop bags for women 10 months later:

    Nice share, the Moq framework, i’ll test it

  172. Avatar
    polo shirts 10 months later:

    Usually animated menus are used only for top level navigation. If you could show nice example where sublinks are shown

  173. Avatar
    Pay Day Loans with instant approval 10 months later:

    The blog is very appreciable and I love reading this post. Thanks for sharing the great information.

  174. Avatar
    plumber dunstable 10 months later:

    nice, The more mocking frameworks that appear, the more you see them enthusiastically used.

  175. Avatar
    mac cosmetics makeup 10 months later:

    top quality mac makeup online, many people like them. especially discount mac makeup and mac cosmetics wholesale which are hot selling.

  176. Avatar
    Pandora 10 months later:

    can look right at the methods to see what they are returning. No “special” knowledge of the mocking framework is necessary.

  177. Avatar
    http://www.caps-hat.com 10 months later:

    Best new era caps ,new era hats, delicate monster energy hats, magical nfl hats, one industries hats, rockstar energy hats, Red Bull Caps, The Hundreds Hats, Supreme Hats, DC Comics new era caps are in stock now. Our site provide first-class service and reliable quanlity garantee, do not hesitate to shake hands with us and go with the tide as soon as possible!

  178. Avatar
    belstaff bag 554 11 months later:

    Wow, the eBook is incredibly helpful. Having just started my own blog and consulting services I have a long to-do list. Thanks for the post!http://www.belstaffdiscount.com/belstaff-bag-s

  179. Avatar
    belstaff bag 554 11 months later:

    http://www.belstaffdiscount.com/belstaff-bag-s Wow, the eBook is incredibly helpful. Having just started my own blog and consulting services I have a long to-do list. Thanks for the post!

  180. Avatar
    cataclysm 11 months later:

    In fact in all posts of this blog their is something to learn . your work is very good and i appreciate your work and hopping for some more informative posts Starcraft 2 strategy

  181. Avatar
    Nicoler 11 months later:

    It’s not too hard to understand the test itself. Apparently we are happy to have the manager be a dummy object with the constraint that createName is never called by NegotiateAuthenticator. The anyString() and anyObject() calls are pretty self explanatory.

  182. Avatar
    Kosher 11 months later:

    What you say about frameworks is true.

  183. Avatar
    Tom 11 months later:

    great article! thanks for sharing.

    Tom @ Lose stomach fat

  184. Avatar
    William@Forex Bulletproof 11 months later:

    Hi. This is a wonderful article. Thank you for sharing all these ideas with us. very useful, indeed! :) keep up the good work!

  185. Avatar
    http://www.caps-hat.com 11 months later:

    We wholesale hats at competitive price,providing a huge range of hats with different brand name,such as coogi hats, polo hats,Jordan hats,famous hats, red bull hats, new era hats, etc.You can buy cheap hats. Welcome to visist here

  186. Avatar
    Bespoke software development 11 months later:

    Thanks for posting this useful information. This was just what I was on looking for. I\’ll come back to this blog for sure! I bookmarked this blog a while ago because of the useful content and I am never being disappointed. Keep up the good work

  187. Avatar
    Fabric duct 11 months later:

    Thanks to you for that new script for me. This is a great post, thanks to you I got this information. I appreciate your work, the post is really helpful and it have so many new valuable things to learn. Thanks for sharing this article. Pretty good post.

  188. Avatar
    Elbrade 11 months later:

    The beauty of these blogging engines and CMS platforms is the lack of limitations and ease of manipulation that allows developers to implement rich content and ‘skin’ the site in such a way that with very little effort one would never notice what it is making the site tick all without limiting content and effectiveness.

  189. Avatar
    ??? 11 months later:

    Thanks for the useful topic

  190. Avatar
    http://www.blacktowhiteiphone4.com 11 months later:

    Still wonder white iphone 4 avaiable or not? We tells you the answer is "yes". Now you can buy the hottest white iphone 4 Conversion Kit and make a change!

  191. Avatar
    ugg classic cardy boots on sale 11 months later:

    How to negotiate ugg boot sale in the UK, led an advance in Europe. No amount of bazaar or traveling, an anniversary that hit their ugg boots. For men, generally accepted atramentous Ugg boots as his favorite mountain, uggs for sale because they are warm and comfortable, no distress from the cold, feel so safe on the street. For women, ugg flip flop slippers abrasion Ugg boots altered rates evident everywhere. Ugg short general all won by youth, as they may wear clothing altered further sweater too. Compatible clothing make wonderful and beautiful.

  192. Avatar
    joe guitar 11 months later:

    I always prefer to keep my code as simple as possible to avoid any chances of doubling up my tables or having a browser wrongly interpret what is being designed.

    Much like a beginner guitar song the base needs to be simple to understand and in the the end this causes less chance of a breakdown.

  193. Avatar
    http://www.blacktowhiteiphone4.com 11 months later:

    At 7 June, 2010, the latest iphone 4 generation was announced. It’s been a high time to get the iphone 4 white, or we may lost the fashion trend. Don’t we?

  194. Avatar
    yooo 11 months later:

    This is a great post, thanks to you I got this information. I appreciate your work, This is a great post, thanks to you I got this information. I appreciate your work, the post is really helpful and it have so many new valuable things to learn. Thanks for sharing this article. Pretty good post.the post is really helpful and it have so many new valuable things to learn. Thanks for sharing this article. Pretty good post.

  195. Avatar
    Term paper 12 months later:

    Thanks a lot for sharing. You have done a brilliant job. Your article is truly relevant to my study at this moment, and I am really happy I discovered your website. However, I would like to see more details about this topic.

  196. Avatar
    Criminal Check 12 months later:

    Mocking and testing is really part of the software/system development to make sure that it will works well when deployed.

  197. Avatar
    US Criminal Record 12 months later:

    This is a great post. Thanks to you for that new script for me.

  198. Avatar
    longview real estate 12 months later:

    I agree with your view on the first example where the use of a mocking framework can lead down bumpy roads when used incorrectly. However, that’s no different than any other tool.longview real estate

  199. Avatar
    Visual Impact Muscle Building Review 12 months later:

    Thanks for posting this useful information. This was just what I was on looking for. I\’ll come back to this blog for sure! I bookmarked this blog a while ago because of the useful content and I am never being disappointed. Keep up the good workVisual Impact Muscle Building Review

  200. Avatar
    pornoindir 12 months later:

    you never cease to amaze me. thanks admin.

  201. Avatar
    Writing Custom Essays 12 months later:

    Very thank for sharing all the inforamtion you offer here. There are so many people have replyed here,and i would like to take part in. Thesis Proposals Thank you for sharing to us.

  202. Avatar
    Jets jerseys 12 months later:

    good nice

  203. Avatar
    beatmaker-software 12 months later:

    Excellent, thank you very much for sharing.

  204. Avatar
    Server management 12 months later:

    An awing aviator. Real informative and discriminating. I appreciate the author for presenting much a chilly office. This types of posts are e’er bookmarkable. I’ll wait for such posts here all the indication. Server management

  205. Avatar
    Bears jerseys 12 months later:

    Can appreciate the morning beautiful sunrise

  206. Avatar
    Server management 12 months later:

    An awesome post. Truly informative and prissy. I see the communicator for presenting specified a cold base. This types of posts are ever bookmarkable. I’ll move for much posts here all the term. Server management

  207. Avatar
    Server management 12 months later:

    An awesome collection. Real informative and metropolis. I apprise the author for presenting specified a modify place. This types of posts are ever bookmarkable. I’ll wait for specified posts here all the indication.

  208. Avatar
    Server management 12 months later:

    An awesome call. Really informative and precise. I understand the communicator for presenting specified a nerveless assemblage. This types of posts are ever bookmarkable. I’ll wait for such posts here all the period. Server management

  209. Avatar
    Discount NBA Jerseys about 1 year later:

    Hello Uncle Bob. Interesting post, as usual.

  210. Avatar
    facebook dating app about 1 year later:

    Your blog seems to contain a handful of information. The outlook is bit fancy but I liked it. I came across a lot of new ideas about the topic. But it would look great if you had broken it into more distinctive sections. Keep it up. facebook dating app

  211. Avatar
    lago di caldonazzo about 1 year later:

    great work

    Visit

    vendita computer

    lago di caldonazzo

  212. Avatar
    Best Nose Hair Trimmer about 1 year later:

    Hey there, you have been a great resource. Love what you do here.. keep updating.. Newport Beach Houses Info. Enjoy Natural life with Newport Beach Houses. Find Newport Beach Houses

  213. Avatar
    Truth About Quickness Review about 1 year later:

    You actually make it appear so simple with your presentation, but I find this matter to be really something which I think I would never understand. It seems too involved and very broad for me. I am looking ahead for your future post; I will try to get the hang of it.

  214. Avatar
    Criminal Records about 1 year later:

    This high coupling is also the cause of the dreaded “Fragile Test” problem.

  215. Avatar
    ghd australia about 1 year later:

    Growth hormone deficiency in Australia, teach you how to protect your hair curl and style hair salon in any way to rectify.

  216. Avatar
    cheap thomas sabo jewellery about 1 year later:

    The post about leisure is quiet good. Reduce our work pressure, improve our life mood . I like it very much.I will support it often. These days I want to buy something from these websites but I dont know how to do.I hope you can help me.Thank you very much I’ve been here before, or so charming

  217. Avatar
    maxilex about 1 year later:

    Good article, I agree with your view

    —-—-—-—-—-—-—-—-—-—-—-—-—--

    Welcome to visit htt://thesc2guides.com for the sc2 guides

  218. Avatar
    Tenant Screening about 1 year later:

    Ct Credit Bureau is a nationwide, full service and accurate information for tenant screening, employment screening and mortgage credit reporting company.

  219. Avatar
    Criminal Records about 1 year later:

    Testing outcomes is a traditional decoupling technique. The test doesn’t care how the end result is calculated, so long as the end result is correct. There may be a dance of several method calls between a few different objects; but the test is oblivious since it only checks the answer.

  220. Avatar
    iPhone SMS to Mac Backup about 1 year later:

    Would you like to banckup iphone SMS to mac, macBook, macbookPro as .txt files? Now a software iphone SMS to Mac Backup can help you to realize it.

  221. Avatar
    Download Software For about 1 year later:

    I admire your testing efforts unbeliavly easy. Thanks again.

  222. Avatar
    thethomasonline about 1 year later:

    I like to thomas

  223. Avatar
    thomas sabo australia about 1 year later:

    I like to thomas

  224. Avatar
    wholesale hair extensions about 1 year later:

    ou will need to create a part deep enough so the end of the part covers the band…the edges should cover the band with no problem..it may mean that you

  225. Avatar
    wholesale hair weave about 1 year later:

    d to position the cap further back…to get it to hold and be secure you may need to sew in some wig clips

  226. Avatar
    puma shoes mens about 1 year later:

    I would try and do so you are an idiot who writes articles, sorry column cusp your not talented enough to write articles

  227. Avatar
    Designer Purses Outlet about 1 year later:

    Sure they look pretty awesome, but if you’re sitting at your computer, are you really doing so with the screen saver on?Good luck for the dates.

  228. Avatar
    gucci shirts about 1 year later:

    Hit me Rank! cheap nfl jerseys Should I pick up Ken Darby rather than playing Kuhn or Forest need to start 3 of the following

  229. Avatar
    gucci shirts about 1 year later:

    It was a beneficial workout for me to go through your webpage

  230. Avatar
    puma shoes mens about 1 year later:

    It was a beneficial workout for me to go through your webpage

  231. Avatar
    http://www.instantloansneed.co.uk/ about 1 year later:

    Rhino mock frameowrk is a Mmature and flexible framework with a very large array of syntaxes leading to extreme confusion when writing tests.

  232. Avatar
    Criminal Search about 1 year later:

    If you were a newbie to TDD, these writings might give you the idea that TDD was defined by the use of mocking tools, rather than by the disciplines of TDD.

  233. Avatar
    cable ties about 1 year later:

    i like how the ideas are presented.

  234. Avatar
    Backup iPhone SMS about 1 year later:

    I want to recommend it for my friends strongly.

  235. Avatar
    iPhone contacts backup for Mac about 1 year later:

    Thanks for shareing!

  236. Avatar
    lv about 1 year later:

    V

  237. Avatar
    Sunglass about 1 year later:

    Buy $10 Replica Designer Sunglasses with 3-day FREE SHIPPING

  238. Avatar
    Web Design about 1 year later:

    Thanks for sharing, it was nice to learn Mocking framework in web designing as well.

  239. Avatar
    Thomas Sabo Australia about 1 year later:

    i like how the ideas are presented.

  240. Avatar
    Yalova Emlak about 1 year later:

    Thank you very much for this blog.I like its.

  241. Avatar
    ????? ?????? about 1 year later:

    Hello Uncle Bob. Interesting post, as usual.

  242. Avatar
    ferragamoAdministrator about 1 year later:

    salvatore ferragamo will make you more comfortable as time goes. ferragamo shoes sale can save money for you. Salvatore Ferragamo Carla may be your choice.

  243. Avatar
    Cash Advance Loans about 1 year later:

    Thank for coding.

  244. Avatar
    Roofing about 1 year later:

    I agree in this statement “The number of mocking frameworks has proliferated in recent years”

    roofing contractor

  245. Avatar
    vibrams five fingers bikila about 1 year later:

    vibram speed 38 womens The children, once they turn 21, would also be able to petition for their parents to get United States citizenshipImmigration experts say it is impossible to know precisely how widespread vibram speed 38 womensmaternity tourism isIn one tweet, Cantor’s office didn’t even mention Reid

    We really couldnt determine the exact number of people living thereSen Most of them, officials say, have already returned to China withvibram speed 38 womens their American babies
  246. Avatar
    zlatibor apartmani about 1 year later:

    For me the Informations are really really useful for my research. I’ve Bookmarked this page for future reference.

  247. Avatar
    Parkour Training Blog about 1 year later:

    Some people suppose parkour seems comfortable others suppose it seems impossibly difficult. Whatever you believe, Parkour is not comfortable but it is also attainable. Go to Parkour Training Blog and find out more baout preparation. With the appropriate attitude and the will to perfect technique, who knows how far you could get. There is no end to amend your parkour power. There is the possible action of always improving and there is no roadblock to hit when you are ‘finished’, there is always a novel place to train or a other jump to jump.

    Parkour and Freerunning are different but not entirely. Parkour was developed pre-existing to Freerunning by David Belle. It comprises of vaults and leaps. The deep philosophy behind parkour is not be controlled by your environment, which most people are. They have to walk on narrow designated paths to get from A to B, but by utilizing parkour there are no architectural bounds and your course is independent for you to pick out.

  248. Avatar
    Dory about 1 year later:

    heyy this nice keep up ! Social Network

  249. Avatar
    Seobaglyak about 1 year later:

    SEO verseny, a seobaglyak kulcsszóra!

  250. Avatar
    Advance America about 1 year later:

    Thanks a lot for this document. I am happy to find your distinguished way of writing the post.

  251. Avatar
    Digdod about 1 year later:

    Thank you for another essential article. Where else could anyone get that kind of information in such a complete way of writing? I have a presentation incoming week, and I am on the lookout for such information.

  252. Avatar
    podrywanie about 1 year later:

    Hi uncle bob, yout tips are really useful. Thanx!

  253. Avatar
    http://www.21cnbeads.co.uk/coral-beads-strands-c-16 _83.html about 1 year later:

    My fellow Americans , ask not what your country can do for you; ask what you can do for your country . My fellow citizens of the world ; ask not what America will do for you, but what together we can do for the freedom of man .

  254. Avatar
    MainStreet Marketing Machines Fusion about 1 year later:

    Do you want to become a professional marketer? That would be great, right? Here is the right way to go: MainStreet Marketing Machines Fusion Main Street Marketing Machines Fusion Get this fantastic marketing machines and amazing bonus: Main Street Marketing Machines Bonus

  255. Avatar
    tahmid_nsu_bba@yahoo.com about 1 year later:

    I really spend enjoyable time here in you blog. It provides me with relevant information about the topic I have been studying. Your last several posts really make me love this blog. I would love to make some posts in the discussion board. Nice work.

    sport scholarships in america

  256. Avatar
    tahmid_nsu_bba@yahoo.com about 1 year later:

    I have been going through your blog for a while. The kind of resources you have amassed is really praiseworthy. It certainly shows the kind of passion you have for this topic. I would love to see it updated more frequently. Carry on the good work.

    sport scholarships in america

  257. Avatar
    tahmid_nsu_bba@yahoo.com about 1 year later:

    Your subtle points and observation on the concerned topic is really praiseworthy. This way the blog has contributed to a great deal of knowledge. The information has been really good. It has an excellent appearance as well. Thanks again for this great site. Property Management Glasgow

  258. Avatar
    Lean to shed plans about 1 year later:

    Well written article, I’ve enjoyed reading, I’ll bookmarked it for future reference, looking forward more of your post.

  259. Avatar
    daemon about 1 year later:

    great! Thx.

  260. Avatar
    very interesting topic! <p><a href="http://mobistyle.ua/">Thank you</a></p> a great post about 1 year later:
    very interesting topic!

    Thank you

    a great post
  261. Avatar
    mediation about 1 year later:

    Wonderful side i like thank you

  262. Avatar
    mediation about 1 year later:

    Thanks for the tips, you’ve been very helpful! heyy this nice keep up

  263. Avatar
    blue laptops about 1 year later:

    You’ve got a fantastic blog, some good practical advice for sure.

  264. Avatar
    Denas about 1 year later:

    Combien de temps at-il été. Internet est né au siècle dernier, et je me demandais ce qui se passera à l’Internet, même après 10 ans .

  265. Avatar
    OnlineCasinoInUsa about 1 year later:

    Well, I have a level of frustration with this testing. I am trying to concentrate and understand it to best of my ability. Thanks for the helpful post!!!!

  266. Avatar
    Photoshop CS5 Serial Number about 1 year later:

    True that.

  267. Avatar
    buy parliament cigarettes about 1 year later:

    Only recently discovered this blog. Since then, I will visit it every day. Thank you for useful information.

  268. Avatar
    okey oyunu oyna about 1 year later:

    Yes it is true.

    internette görüntülü olarak okey oyunu oyna, gerçek kisilerle tanis, turnuva heyecanini yasa.

  269. Avatar
    games about 1 year later:

    Thanks to you for that new script for me. This is a great post, thanks to you I got this information. I appreciate your work, the post is really helpful and it have so many new valuable things to learn. Thanks for sharing this article. Pretty good post. ??? ??? ???

  270. Avatar
    Andrew John about 1 year later:

    You should really suffix these DI/mock posts with “in Java”

    Because your arguments stand… in Java. In C# and Ruby and JavaScript, and just about every other modern language

    ==> I agree with you Chad. You should modify it to resolve the problem :)
  271. Avatar
    Univ Scholarship about 1 year later:

    Rolling my own mocks always made developers look at me weird. Their thought was that only developers new to TDD manually mocked.

    I don’t always hand code them, but when I think it will lead to clearer understanding and easier maintenance it is an easy decision.

    yeah… i agree with you

  272. Avatar
    Android phones news about 1 year later:
    You make a great article like this information about
    • Samsung Galaxy S II vs atrix
    • Sony ericsson Xperia arc
    • Android gingerbread Features
    • Sony Ericsson XPERIA PLAY
    • most dangerous Places to live
    • most dangerous freshwater fish
    • most dangerous Dogs
    • most dangerous cities in america
    • top 10 tsunami in the world
  273. Avatar
    web design in Maidstone about 1 year later:

    it is impossible to predict all the outcomes :) ... just some

  274. Avatar
    UK classifieds about 1 year later:

    thank you for sharing,

    Helmuts

  275. Avatar
    Maidstone classifieds about 1 year later:

    too complicated for me :)

    tx anyway

  276. Avatar
    Elite Blogging about 1 year later:

    good one. i am sure you still have improved and also other stuff to accomplish. thank you :)

  277. Avatar
    Hermes belt about 1 year later:

    Highest quality and cheap belts shop at Hermes belt store.

  278. Avatar
    For Sale In Hayward about 1 year later:

    The more mocking frameworks that appear, the more I see them enthusiastically used.

  279. Avatar
    Santa Monica Homes For Sale about 1 year later:

    Thanks for this article. Some of your tweets earlier this week on this topic intrigued me. I hoped you were going to write more about it.

  280. Avatar
    Santa Monica Homes For Sale about 1 year later:

    Thanks to you for that new script for me. This is a great post, thanks to you I got this information.

  281. Avatar
    divorce settlement agreement about 1 year later:

    Thanks a lot for this document. I am happy to find your distinguished way of writing the post.

  282. Avatar
    Beat Maker Application about 1 year later:

    Cool doc. Make online beats.

  283. Avatar
    home construction about 1 year later:

    Rolling my own mocks always made developers look at me weird. Their thought was that only developers new to TDD manually mocked.

  284. Avatar
    Nose Job Recovery about 1 year later:

    Thank you for this step by step instruction. Great ideas and tips. I’ve always had trouble finding a free place to blatantly advertise my products and services so I made one.

  285. Avatar
    Tales For Kids - Read the correct fairy tales for children about 1 year later:

    Tales For Kids – Read the correct fairy tales for children Tales For Kids – Read the correct fairy tales for children

  286. Avatar
    Tales For Kids about 1 year later:

    Tales For Kids – Read the correct fairy tales for children Tales For Kids – Read the correct fairy tales for children

  287. Avatar
    Techno News about 1 year later:

    Thank you for another essential article. Where else could anyone get that kind of information in such a complete way of writing? I have a presentation incoming week, and I am on the lookout for such information. I wait behind the visit … Techno News

  288. Avatar
    Kettlebells about 1 year later:

    Great site. I really love the community you’ve build up on this site!

  289. Avatar
    produits de la mer morte about 1 year later:

    I have learned this lesson the hard way. I am glad you wrote about it an attempt to help others avoid tar pit test suites.

  290. Avatar
    magnetic power generator about 1 year later:

    It was nice to read an article which gives a lot on information like this. To have a framework on the work will make it easy to comprehend on the system. Also this enables you to manage the flow of your tasks.

  291. Avatar
    2gts about 1 year later:

    I agree with the earlier comments, this is a really useful page you have here. All these comenters must love it too!

  292. Avatar
    sex toys about 1 year later:

    That statement does not require my poor readers to understand anything about Mockito. Of course it does require me to hand-roll a manager mock. Would that be hard?

  293. Avatar
    paul about 1 year later:

    Great site.keep it up! I really love the community you’ve build up on this site!

  294. Avatar
    aircard about 1 year later:

    Very Good Site. Please show the knowledge and more writing on this article Thanks you by the way.

  295. Avatar
    Jewellery about 1 year later:

    i am happy for you responses

  296. Avatar
    handmade silver rings about 1 year later:

    Great frameworks article, I learned a lot.

  297. Avatar
    lose thigh about 1 year later:

    great discussion on mocking framework!

  298. Avatar
    Kevin Hardaway about 1 year later:

    A nice posting for this codes. We often use this part of codes in our application. Maybe another programmers will need this too.

  299. Avatar
    best credit card for miles about 1 year later:

    Outcomes in testing is very important. It will proves your hypothesis about the testing itself.

  300. Avatar
    John @ Caravan Mover Reviews about 1 year later:

    This is useful stuff, has helped massively with an issue I’ve been having. Many thanks,

  301. Avatar
    Oklahoma pest control about 1 year later:

    hmm The kind of resources you have amassed is really praiseworthy. It certainly shows the kind of passion you have for this topic.

    Oklahoma pest control

  302. Avatar
    ????? ?????? about 1 year later:

    grg

  303. Avatar
    Pandora Charms about 1 year later:

    Thanks for your blog. I’m just launching http://www.magicjewelrybox.org/">Pandora Charms and wonder if I should also register the same domain with hyphens between the words. Should one have a permanent re-direct to the other?

  304. Avatar
    oakley canada about 1 year later:

    Thanks again for using us for your online services. If you have any questions regarding this please visit our service center on our web site.

  305. Avatar
    purse bags about 1 year later:

    Thanks again for using us for your online services. http://www.mypursehandbag.com

  306. Avatar
    pandora charms on sale about 1 year later:

    pandora charms on sale isn’t your childhood charm bracelet, but it will be just as special. Do you remember the first charm bracelet you wore as a young lady? You were so proud of every new charm that you just added to your collection and compared it to your friends’ bracelets. Maybe you had a roller skate, a ballet slipper, or a pom-pom. There were puppy and kitten charms to represent a favorite pet. You would search for a brand new charm to symbolize each new interest or accomplishment. As a souvenir from an exciting vacation, you’d add another charm. Before long, you had quite a dangly bracelet around your wrist. While you cherished it, you have got to admit it often got caught on things and perhaps even ruined a few sweaters.

  307. Avatar
    alex brown about 1 year later:

    Using a framework for simulations that are able to prove exactly the proper functioning of one method over the premises of the method. Certainly, you can get the same effect as rolling test doubles, but it seems that the extra work.

    I still do not see the harm in using the framework of mockery. Liar add a class code that must be maintained, and as much as I like to write code that always want to maintain a lesser amount.

    The idea of ??using mocks allow you to write code that have a high degree of coupling is a straw man. Or make fun of the class or hand-rolled allow you to do. The warning signal may be more acute wound by hand, but that is the case when the hand of developing anything. site analytics

  308. Avatar
    penny auctions reviews about 1 year later:

    This team is not the first team I’ve seen who have fallen into this trap. In fact, I think that the TDD industry as a whole has fallen into this trap to one degree or another.

  309. Avatar
    Christian Louboutiny about 1 year later:
    The article is great, I love it. In 2011, Tory Burch boots,Tory Burch Handbagsvery popular, loved by many people in the time I strongly recommend to you, I’m sure you will be addicted to them
  310. Avatar
    Christian Louboutiny about 1 year later:
    The article is great, I love it. In 2011, Tory Burch boots,Tory Burch Handbagsvery popular, loved by many people in the time I strongly recommend to you, I’m sure you will be addicted to them
  311. Avatar
    Christian Louboutiny about 1 year later:

    Thank you for this! I think it’s great that we have people like you!

  312. Avatar
    buy christian louboutin pumps http://www.newshoessale.com/Christian-Louboutin-Pumps/Christian-Louboutin-Pointy-Toe-Pigalle-Pumps_51.htm about 1 year later:

    That’s a good creation.

  313. Avatar
    maitinimo kedutes about 1 year later:

    A furnace is a device found in the home and is used to heat it up. With the bitter winter setting in buying a furnace will be on the top list for every one. i also like to buy furnace

  314. Avatar
    oakley frogskins about 1 year later:

    A furnace is a device found in the home and is used to heat it up. With the bitter winter setting in buying a furnace will be on the top list for every one.

  315. Avatar
    rhinoplasty healing about 1 year later:

    Thanks for this article. Some of your tweets earlier this week on this topic intrigued me. I hoped you were going to write more about it.

    On the topics, I agree and disagree.

    Regarding testing implementation (interaction) versus interface (results), I agree. Tests are much less fragile when testing the outward facing results. Our team has had some heated discussions about the relevance of directly testing private and protected methods. Fortunately, over time I think we’re coming to a good balance.

    However, regarding limiting the use of mocks, I disagree. A number of years ago I wrote software in an environment which did not have any mocking framework. (Delphi 5/Win32) All mock objects were hand-rolled; it was pretty painful with things that looked like your MockGSSManager.

    (As an aside, I find it interesting you said: “And, of course, I can put this code somewhere where nobody had to look at it unless they want to.” Reminds me of your tweet a couple days ago: “The desire to hide code is really a still small voice telling you to decouple.”)

    Now, with Rhinomocks in C#, testing is almost fun; it’s certainly more satisfying with less “busy” code. And, the mock’s code is right there close to, if not in, the test, rather than spread in another class.

    Anyway, thanks for provoking thought.

  316. Avatar
    http://www.linksoflondonusa.org/ about 1 year later:

    thanks for you article,your artcile is great,i think,there will be a lot of people like you!

  317. Avatar
    Cheap links of london sale about 1 year later:

    thanks for you article,your artcile is great,i think,there will be a lot of people like you!Cheap links of london sale

  318. Avatar
    MyHTC about 1 year later:

    That statement does not require my poor readers to understand anything about Mockito. Of course it does require me to hand-roll a manager mock. Would that be hard? Let’s try.

  319. Avatar
    Crystal Jewellery about 1 year later:

    Great post! Nice and informative, I really enjoyed reading it and will certainly share this post with my friends . Read everything you ever wanted to know about promise rings and the meaning of promise rings/a>

  320. Avatar
    mobile signal booster about 1 year later:

    Code testing and site testing is very important for any projects because with help of this we can find out all the errors and which couple of modules need mocking.

    mobile signal booster

  321. Avatar
    ????? ???? ???????? about 1 year later:

    Well, I have a level of frustration with this testing. I am trying to concentrate and understand it to best of my ability. Thanks for the helpful post!!!

  322. Avatar
    bagsupplyer about 1 year later:

    Thank you very much.Waiting for update. Discount fashion women Burberry Lowcut shoes from China for wholesale free shipping,more order,more discount

  323. Avatar
    dyspraxia about 1 year later:

    “The moral of this story is that the point at which you start to really need a mocking framework is the very point at which the coupling between your tests and code is getting too high. There are times when you can’t avoid this coupling, and those are the times when mocking frameworks really pay off. However, you should strive to keep the coupling between your code and tests low enough that you don’t need to use the mocking framework very often.”

    I know im not the only one to fall into the trap of everything looking like a nail when you have a hammer. The less complex your code is the better, dont use a tool just because it is available.

  324. Avatar
    Belstaff Jackets Sale about 1 year later:

    Belstaff Leather Jackets are currently become more and more fashionable,specially in recent years,lots of women has changed their cumbersome marten coats to stylish Womens Belstaff Leather Jackets in winter. Belstaff Motorcycle Jackets not simply will retain warm but also extremely eye-catching.They can express your frame of Mens Belstaff Leather Jackets mind and character. At this time we can discover women wearing unique variations of from blazers, reversible jackets, outdoor jackets, coats to suede jackets. They are various kinds of Belstaff Clothing in the market now and you certainly can discover one that your mind wishes.Among all the jacket brand,Belstaff one of the most popular. Belstaff Bags have dedicated to jacket research and manufacturing for longer than 80 years,80 years’ reserch and study make Belstaff grow to be one of the top brand in clothing market,especially the Mens Belstaff Blouson UK has earned huge popularity.The latest fashion statements in the Belstaff jacket designs for women are the class ladies motorcycle jackets. Womens Belstaff motorcycle jacket will not be only for wearing when you are riding a motorcycle. Belstaff Travel Bags for women come in almost any style you can imagine. For more information about Belstaff Mens Boots.

  325. Avatar
    Betty Wilkinson about 1 year later:

    Good article more useful to me, I will continue to pay attention, and I love discount evening wedding dress,I hope you lot just my site! discount aline wedding dresses http://www.tofuchina.com

  326. Avatar
    jhhgy@yahoo.com about 1 year later:

    This is very informative. This is a rich post. You shared a lot. Thanks for this. Pioneer AVIC-Z130BT

  327. Avatar
    jhhgy@yahoo.com about 1 year later:

    This is very informative. This is a rich post. You shared a lot. Thanks for this. Pioneer AVIC-Z130BT

  328. Avatar
    bandages about 1 year later:

    I’m not entirely convinced by your post here, but it has swung me more on the hand coded side than I was before. The biggest problem that I have with hand rolling the mocks is that you may need different behavior in different tests, then you would have to have multiple hand rolled mocks that do different things,

  329. Avatar
    Oshawa Dentist about 1 year later:

    I agree with the poster above me, I think it’s a good way of looking at things

  330. Avatar
    <a href="http://www.niketnrequinpaschere.com">Nike TN</a> about 1 year later:

    I agree with the poster above me, I think it’s a good way of looking at things

    dfd

  331. Avatar
    [url=http://www.niketnrequinpaschere.com] TN Nike [/url] about 1 year later:

    I agree with the poster above me, I think it’s a good way of looking at things sa

  332. Avatar
    [url=http://www.niketnrequinpaschere.com] TN Nike [/url] about 1 year later:

    I agree with the poster above me, I think it’s a good way of looking at things sdfsdfasdaf

  333. Avatar
    Treatment for Sciatica about 1 year later:

    I guess for testing it should need multiple iterations. Because different mocks may appear in different testings.

  334. Avatar
    belstaff about 1 year later:

    Disciple to ask teacher: “could you tell mebelstaff jakets something about the human odd?” Answer: “they rush to grow up, and then bemoaned the lost childhood; they to health, and soon forbelstaff boots money in exchange for money to restore health. For their future, the but again ignored at the anxiety ofbelstaff bags happiness. So now, they don’t live in the present, also do not live in the future. They live as if will never die, before he died, and as though they had never lived.

  335. Avatar
    UGG salg about 1 year later:

    Den klassiske ugg støvler silhuet er blevet opdateret med et glamourøst twist af animalsk trykte lambsuede byder grommet og hvælvet nitter i en antik finish. Så for at tidevandet os samarbejde-sultne folk igen, indtil den pågældende high-street scrummage, Jimmy Choo og UGG Australia er kommet op Trumps med en ‘mode ægteskab’ af deres egne.Der henvises Søg:Jimmy Choo & Ugg,ugg støvler i dan

  336. Avatar
    http://www.ghalay.com about 1 year later:

    thank you for sharing with us

  337. Avatar
    HTC Wallpaper about 1 year later:

    They must be tracked from version to version. But perhaps the most significant reason is that once you have a hammer, everything starts to look like a nail.

    I agree, :)

  338. Avatar
    Tran Dang Khoa about 1 year later:

    Thank this information . It userful for me .

  339. Avatar
    best sleep aid about 1 year later:

    Corporations are challenging existing business models as they seek ways to speed innovation, focus on their core competencies, and scale to capitalize on opportunities and outpace competitors.

  340. Avatar
    http://www.monclerjacketsstyles.com/ about 1 year later:

    Check around for the best deals on men’s and women’s snowboarding jackets Moncler Jackets. Or check online. There are many websites designed specially for snowboarders. http://www.2011monclersale.com You’re bound to find jackets to suit your style and taste. Moncler adopts new technology to make the coats look not too bloated and light in weight.

  341. Avatar
    Christian about 1 year later:

    as sdf0g+9s8d+fg8s+dsss

  342. Avatar
    moncler about 1 year later:

    asdf asdfg+09dg+9sdddd

  343. Avatar
    Louboutins about 1 year later:

    asda sd+0fs5a63 333aaa

  344. Avatar
    ????? ?????? about 1 year later:

    ??? ???? http://www.iraq29.com

  345. Avatar
    iraq29 about 1 year later:

    Parkour and Freerunning are different but not entirely. Parkour was disciplined anterior to Freerunning by David Belle. It consists of hurdles and bounds. The big philosophical system

  346. Avatar
    dsi ???? about 1 year later:

    Every time I am finding this blog.Great post. Please write more and more about this. I had never see a blog better than this one.Thank you for your post. ???????????????????

  347. Avatar
    Air Socks about 1 year later:

    what is a mocking framework? i’m guessing it is different to a mocking bird, is it for the bird to stand on?

  348. Avatar
    Buy lasix 40mg about 1 year later:

    I hope most people would agree that record/playback has not shown a lot of promise for long term automation strategies. On the other hand writing good maintainable loosely coupled GUI automation code works great

  349. Avatar
    euro air about 1 year later:

    unique content is always best

  350. Avatar
    Edo about 1 year later:

    I agree with most of the things that Uncle Bob says, but creating a test double manually for the sake of readability is imho overkill. It may also confuse the reader, who will have to look at the test double class to see that createNameWasNotCalled() is not a member of the GSSManager class.

  351. Avatar
    nice cheap about 1 year later:

    Thanks for the code written by Moderator write. Useful to me.

  352. Avatar
    Harry about 1 year later:

    Great post Uncle Bob! I’d estimate about 99.9% of it went straight over my head, but I’m sure it was useful to someone!

  353. Avatar
    [url=http://www.belstaff-outlet.de/]belstaff[/url] about 1 year later:

    If you are a woman is different, Belstaff jacket, your best choice,stylish and comfortable.

  354. Avatar
    [url=http://www.belstaff-outlet.de/]belstaff[/url] about 1 year later:

    If you are a woman is different, Belstaff jacket, your best choice,stylish and comfortable.

  355. Avatar
    wallyhandbags about 1 year later:

    Fashion handbags to http://www.wallyhandbags.com ,free shipping any order ,ten of the speecial offer everyday!

  356. Avatar
    xsw123 about 1 year later:

    ??? ????1856??????????? ????????1835??????????? 1924??” ??? ????”??????????????????????????? ??????????? ??? ? ( Burberry) ??? ??????1856????????? ??? ???????????? ??? ??????????????????? ???????????? ? ??????????? ??? ???.
    ?? ?? ??????????????? ?? ?????????? ?? ?1968??????? ?? ???????????? ????????? ?? ???????? ?? ??????? ?? ??????? ?? ???????? ?????? ?????5 ?????????TOMS ??????????? ????????????????????????? ????????????Supra ????????? ?????????????? ??????

  357. Avatar
    Andy Yousuf about 1 year later:

    Learning a framework to the core is definitely a hard task! loves writing articles

  358. Avatar
    Download Android Apps about 1 year later:

    Interesting article and one which should be more widely known about in my view. Your level of detail is good and the clarity of writing is excellent. I have bookmarked it for you so that others will be able to see what you have to say

  359. Avatar
    Free Download Website about 1 year later:

    Such a wonderful post. Thanks for sharing this blog post.

    Status ngau hung of Tran Dang Khoa | Free Download | Free Download Website | Unlock dien thoai nhat | dien thoai nhat

  360. Avatar
    Wiphone about 1 year later:

    Some of you might think I’m setting up a straw-man. I’m not. I realize that bad code can be written in any language or framework, and that you can’t blame the language or framework for bad code.

    The point I am making is that code like this was the way that all unit tests in this application were written. The team was new to TDD, and they got hold of a tool, and perhaps read a book or article, and decided that TDD was done by using a mocking tool. This team is not the first team I’ve seen who have fallen into this trap. In fact, I think that the TDD industry as a whole has fallen into this trap to one degree or another.

  361. Avatar
    Jools about 1 year later:

    :) I understand that Moq is supposed to be simple to use – but after 2 hours I am dropping this thing – something goes wrong all the time :/

    anyway, tx for sharing Jools

  362. Avatar
    Haseeb about 1 year later:

    object mentor is very nice and there are number of frameworks so it is very good for me and for my friends.

    aircraft for sale in Ireland

  363. Avatar
    tv show about 1 year later:

    very interesting article. thanks alot for sharing and keep up the good work!

    best r, Danielle

  364. Avatar
    hAllohi about 1 year later:

    The best social network…..

  365. Avatar
    nikeheelsdunk about 1 year later:


    A first aid kit is a must for small and accidental injuries. Of course it’s unavoidable to scrape your arm on rough bark or falling off the tree stand, at least there’s an available remedy in that box. Always make sure to dispose of the Nike heels for women material properly.

    Other equipment such as rifles or bows must be kept unloaded. Most States will commission a guide for hunters to carry the ammunition and probably help the hunter carry some of the necessary equipment. It’s not like having a Jordan Heels For Women caddy carrying the bag, but he is there to ensure the safety of the hunter as well as the forest.

    Never drink anything that may compromise or deteriorate your physical or mental faculties.
  366. Avatar
    nikeheelsdunk about 1 year later:


    A first aid kit is a must for small and accidental injuries. Of course it’s unavoidable to scrape your arm on rough bark or falling off the tree stand, at least there’s an available remedy in that box. Always make sure to dispose of the Nike heels for women material properly.

    Other equipment such as rifles or bows must be kept unloaded. Most States will commission a guide for hunters to carry the ammunition and probably help the hunter carry some of the necessary equipment. It’s not like having a Jordan Heels For Women caddy carrying the bag, but he is there to ensure the safety of the hunter as well as the forest.

    Never drink anything that may compromise or deteriorate your physical or mental faculties.
  367. Avatar
    iPhone contacts backup about 1 year later:

    How many people understand this? it is a good choice to make a copy of it and save it on computer. We can retrieve them when necessary.

  368. Avatar
    free cell phone spy about 1 year later:

    This is a very informative article.I was looking for these things and here I found it. I am doing a project and this information is very useful me. I always try to find information and hopefully I found more about what I am locking for..!

  369. Avatar
    Android News about 1 year later:

    Thank you.

    I recentlly had an eye opener at work, where I was shown how our extensive use of Rhino Mock’s garbled the readability of our testing.

    After rewriting the test without Rhino mock’s it became apparent to me, how our learned behaviour to use mocks as much as we did affected the quality of our testing code.

    I’m now looking at mocking suspiciously.

  370. Avatar
    iPhone sms to Mac backup over 2 years later:

    TDD was defined by the use of mocking tools? really?

  371. Avatar
    adidas predator over 2 years later:

    Although the speed could not be exactly estimated, the sledge could not be going at less than forty miles an hour. http://www.soccershoes-us.com/

    Lydia

  372. Avatar
    lipozene over 2 years later:

    Thanks for theNice post, I’ve really enjoyed reading your articles. You obviously know what you are talking about!

  373. Avatar
    Forfait mobile over 2 years later:

    Thank you for this step by step instruction. Great ideas and tips. I’ve always had trouble finding a free place to blatantly advertise my products and services so I made one.

  374. Avatar
    mbtshoe over 2 years later:

    Australia Beats By Dre Studio dr dre beats headphones beats studio beats pro beats solo hd pro headphones music Official store Monster Beats By Dre Pro

  375. Avatar
    CDHFamilies over 2 years later:

    So when should use use a mocking framework? The answer is the same for any other framework. You use a framework only when that framework will give you a significant advantage.

  376. Avatar
    Download RTSO Stream over 2 years later:

    very interesting article. thanks alot for sharing and keep up the good work! download all streaming video of rtsp, https, mms streaming video and audio

  377. Avatar
    Ramen Noodle Recipes over 2 years later:

    Ramen Noodle Recipes Ramen Noodle Recipes this is great article, i very helpfull with this articles and to admin thanks

  378. Avatar
    language lab over 2 years later:

    Really wonderful! I read various articles from this site. I like your articles and will continue follow you site!!

  379. Avatar
    Louis Vuitton Pas Cher Sac over 2 years later:

    I am so happy to read your post , it is wonderful . I like it and thanks for sharing it . Louis Vuitton Sac Prix Louis Vuitton Neverfull Boutiques Louis Vuitton Lunettes Louis Vuitton

  380. Avatar
    Mold Making over 2 years later:

    With more than 20 years of experience, Intertech provides an extensive integrated operational ability from design to production of molds 100% made in Taiwan. Additional to our own mold making factory, we also cooperate with our team vendors to form a very strong working force in Taiwan.

    For the overseas market, we work very closely with local representatives in order to take care of the technical communication and after-sales service to our customers. We also participate in the EUROMOLD & FAKUMA exhibitions and meet our customers every year in Europe. By concentrating on mold “niche markets”, we play a very useful mold maker role from the Far East whenever customers want to develop their new projects. We provide services from A to Z to our customers on a very economic cost and effect basis.

  381. Avatar
    Injection Mold over 2 years later:

    With more than 20 years of experience, Intertech provides an extensive integrated operational ability from design to production of molds 100% made in Taiwan. Additional to our own mold making factory, we also cooperate with our team vendors to form a very strong working force in Taiwan.

    For the overseas market, we work very closely with local representatives in order to take care of the technical communication and after-sales service to our customers. We also participate in the EUROMOLD & FAKUMA exhibitions and meet our customers every year in Europe. By concentrating on mold “niche markets”, we play a very useful mold maker role from the Far East whenever customers want to develop their new projects. We provide services from A to Z to our customers on a very economic cost and effect basis.

  382. Avatar
    surya over 2 years later:

    I am happy to find this post Very useful for me, as it contains lot of information. I Always prefer to read The Quality and glad I found this thing in you post. Thanks

  383. Avatar
    surya over 2 years later:

    I am happy to find this post Very useful for me, as it contains lot of information. I Always prefer to read The Quality and glad I found this thing in you post. Thanks

Comments