### Question:
MultiTypePropertyViewAttributeBinder implements ViewAttributeBinder { @Override public void bindTo(BindingContext bindingContext) { try { initializeViewAttributeBinder(bindingContext); performBind(bindingContext); } catch (RuntimeException e) { throw new AttributeBindingException(attribute.getName(), e); } } MultiTypePropertyViewAttributeBinder(PropertyViewAttributeBinderProvider viewAttributeBinderProvider, 
			ValueModelAttribute attribute); @Override void bindTo(BindingContext bindingContext); @Override void preInitializeView(BindingContext bindingContext);  }### Answer:
@Test(expected = AttributeBindingException.class) public void givenNoMatchingViewAttributeBinder_whenBind_thenExceptionIsThrown() { when(viewAttributeBinderProvider.create(any(Class.class))).thenReturn(null); MultiTypePropertyViewAttributeBinder multiTypeViewAttributeBinder = new MultiTypePropertyViewAttributeBinder( viewAttributeBinderProvider, attribute); multiTypeViewAttributeBinder.bindTo(bindingContext); }
@Test public void givenAMatchingViewAttributeBinder_whenBind_thenTheViewAttributeBinderIsBoundToContext() { when(viewAttributeBinderProvider.create(any(Class.class))).thenReturn(viewAttributeBinder); MultiTypePropertyViewAttributeBinder multiTypeViewAttributeBinder = new MultiTypePropertyViewAttributeBinder( viewAttributeBinderProvider, attribute); multiTypeViewAttributeBinder.bindTo(bindingContext); verify(viewAttributeBinder).bindTo(bindingContext); }