private static String determineBindInfo(final Key<?> key,
                                            final Binding<?> binding,
                                            final Class<?> bindingClass) {
        final String bindingInfo;
        if (Entry.class.isAssignableFrom(key.getTypeLiteral().getRawType())) {
            // dup for multibinds
            bindingInfo = null;
        } else if (ProviderBinding.class.isAssignableFrom(bindingClass)) {
            // dup
            bindingInfo = null;
        } else if (InstanceBinding.class.isAssignableFrom(bindingClass)) {
            bindingInfo = "Instance of " + NullSafe.get(
                    (InstanceBinding<?>) binding,
                    InstanceBinding::getInstance,
                    Object::getClass,
                    Class::getName);
        } else if (ProviderInstanceBinding.class.isAssignableFrom(bindingClass)) {

            final ProviderInstanceBinding<?> providerInstanceBinding =
                    (ProviderInstanceBinding<?>) binding;
            bindingInfo = "Provider (" + NullSafe.get(
                    providerInstanceBinding,
                    ProviderInstanceBinding::getSource,
                    Object::toString)
                          + ")";
        } else if (ProviderKeyBinding.class.isAssignableFrom(bindingClass)) {
            final ProviderKeyBinding<?> providerInstanceBinding =
                    (ProviderKeyBinding<?>) binding;
            bindingInfo = "Provider (" + NullSafe.get(
                    providerInstanceBinding,
                    ProviderKeyBinding::getProviderKey,
                    Key::getTypeLiteral,
                    TypeLiteral::getRawType,
                    Class::getName)
                          + ")";
        } else if (LinkedKeyBinding.class.isAssignableFrom(bindingClass)) {
            // Standard binding of iface to impl
            final LinkedKeyBinding<?> linkedKeyBinding = (LinkedKeyBinding<?>) binding;
            bindingInfo = linkedKeyBinding.getLinkedKey().getTypeLiteral().toString();
        } else if (ConstructorBinding.class.isAssignableFrom(bindingClass)) {
            final ConstructorBinding<?> constructorBinding = (ConstructorBinding<?>) binding;
            final Matcher matcher = Pattern.compile(SCOPE_PATTERN)
                    .matcher(constructorBinding.toString());
            final String scope = matcher.find()
                    ? matcher.group()
                    : "";
            bindingInfo = "Constructor - " + scope;
        } else {
            bindingInfo = bindingClass.getSimpleName();
        }
        return bindingInfo;
    }
Create a {@link MockBinderBuilder} to bind multiple interfaces to a {@link Mockito} mock.
stroom-test-common/src/main/java/stroom/test/common/util/guice/GuiceTestUtil.java