As long as you test [indirect output](http://xunitpatterns.com/indirect%20output.html) as *one* test case and [direct output](http://xunitpatterns.com/direct%20output.html) as *another* test case I would claim that I can always make an incorrect, but passing test like the one I posted above - the only thing I might need to change is that instead of returning an anonymous object, I'd have to return something more specific.

```C#
public object Invoke(IEnumerable<object> parameters)
{
    decoratedMethod.Invoke(new[] { parameters });
    return // some specific object defined by the test
}
```

How would you prevent me from doing that?

---

The technique of coming up with deliberately wrong implementations is called *Devil's Advocate* and is often used in Pair Programming. However, I have found that it can also often be used to good effect as a guide towards better unit tests.

While at times it may seem both slightly destructive and a little stupid, it helps to distil the essence of the required test suite. I often use it with myself, although I realize that this sounds a bit schizophrenic (in the pop-culture sense of the word).