Vadim Vadim - 1 year ago 69
C# Question

How to unit test a method with a `using` statement?

How can I write a unit test for a method that has a using statement?

For example let assume that I have a method


public bool Foo()
using (IMyDisposableClass client = new MyDisposableClass())
return client.SomeOtherMethod();

How can I test something like the code above?

Sometimes I choose not to use
statement and
an object manually. I hope that someone will show me a trick I can use.

Answer Source

If you construct the IMyDisposableClass using a factory (injected into the parent class) rather than using the new keyword, you can mock the IMyDisposable and do a verify on the dispose method call.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download