I’m trying to be better about unit testing my code, but right now I’m writing a lot of code that deals with remote systems. SNMP, WMI, that sort of thing. With most classes I can mock up objects to test them, but how do you deal with unit testing a real system? For example, if my class goes out and gets the Win32_LogicalDisk object for a server, how could I possibly unit test it?
Share
Assuming you meant ‘How do I test against things that are hard/impossible to mock’:
If you have a class that ‘goes out and gets the Win32_LogicalDisk object for a server’ AND does something else (consumes the ‘Win32_LogicalDisk’ object in some way), assuming you want to test the pieces of the class that consume this object, you can use Dependency Injection to allow you to mock the ‘Win32_LogicalDisk’ object. For instance:
Then in your unit test code, pass in a ‘LogicalDiskFactory’ that returns a mock object for the ‘Win32_LogicalDisk’.