Я согласен с ответом Марка Симанна, как правило, для 99% классов это работает нормально.
Есть некоторые классы фабричного типа (возможно, классы, которые берут Модель и преобразуют ее в ViewModel, где у этих ViewModel есть зависимости), для которых это не работает. В этих случаях я обычно принимаю интерфейс для контейнера, а не его конкретный тип (IUnityContainer, в вашем случае) и как обычно макет.
public class MyWidgetFactory : IMyWidgetFactory
{
public MyWidgetFactory(IUnityContainer container)
{
//...
}
public Widget[] GetWidgets()
{
//...
}
}
public class MyWidgetFactoryConsumer
{
private Widget[] _widgets;
public MyWidgetFactoryConsumer(IMyWidgetFactory factory)
{
_widgets = factory.GetWidgets();
}
}
Оба вышеперечисленных класса являются тестируемыми, при этом классу фабрики требуется иметь поддельную версию IUnityContainer, а потребителю нужен только сам фабрики.