Кстати, вопрос по Unit тестам, каким образом тестировать классы имеющие интерфейс (контракт) и много приватных полей?
А зачем тестировать поля?
Если приватные методы, то, так навскидку либо рефлекшеном, либо делать методы protected, а в тестах наследовать и тестировать из-под наследника