я под "Contextual Binding" отношу не только зависимость от класса в который надо подтянуть данную зависимость, а также от текущего окружения, например маршрута, пользователя, времени суток и т.д. В данном случае без ServiceProvider на обойтись.
Потому замени TestClass, на TestInterface, вот тебе и абстракция, а возврат будет зависеть от каких-то факторов, см. выше