GurdeepS
GurdeepS

Reputation: 67283

How could I unit test this?

I am using the Mono and Lokad quality libraries to develop an API which does things like inspect the characteristics of methods to see if they throw exceptions, etc etc.

One of my methods I have in this API looks like this:

// Get all methods which have a NotImplementedException
var throwingMethods = _codebase.Methods
    .Where(m => m.GetInstructions()
                 .Exists(i => i.Creates<NotImplementedException>())
    ).ToArray();
 return throwingMethods;

How could I unit test this? C# does not have its own native ability to do the same thing. Perhaps I could just have a small assembly, make a hard-coded collection, and compare?

Thanks

Upvotes: 3

Views: 147

Answers (1)

Darin Dimitrov
Darin Dimitrov

Reputation: 1039498

You could try mocking the _codebase variable to return some predefined methods for your unit test.

If _codebase is set by a variable passed to the constructor of the class you are testing (constructor injection) then this might be pretty easy (assuming of course that the Methods property is overridable and the class is not sealed).

Upvotes: 7

Related Questions