@Test(expected = RuntimeException.class)
public void MustInCorrectResolveDependencyWhenArg0IsNotString() throws Exception {

    BootstrapItem item = mock(BootstrapItem.class);
    whenNew(BootstrapItem.class).withArguments("IFieldNamePlugin").thenReturn(item);
    when(item.after(anyString())).thenReturn(item);
    plugin.load();
    verifyNew(BootstrapItem.class).withArguments("IFieldNamePlugin");
    verify(item).after("IOC");
    ArgumentCaptor<IPoorAction> iPoorActionArgumentCaptor = ArgumentCaptor.forClass(IPoorAction.class);
    verify(item).process(iPoorActionArgumentCaptor.capture());
    verify(bootstrap).add(item);
    IKey iFieldNameKey = mock(IKey.class);
    when(Keys.getOrAdd("info.smart_tools.smartactors.iobject.ifield_name.IFieldName")).thenReturn(iFieldNameKey);
    ArgumentCaptor<Function<Object[], Object>> targetFuncArgumentCaptor = ArgumentCaptor.forClass((Class) Function.class);
    ResolveByNameIocStrategy createNewInstanceStrategy = mock(ResolveByNameIocStrategy.class);
    whenNew(ResolveByNameIocStrategy.class).withArguments(targetFuncArgumentCaptor.capture()).thenReturn(createNewInstanceStrategy);
    iPoorActionArgumentCaptor.getValue().execute();
    verifyStatic();
    Keys.getOrAdd("info.smart_tools.smartactors.iobject.ifield_name.IFieldName");
    verifyNew(ResolveByNameIocStrategy.class).withArguments(targetFuncArgumentCaptor.getValue());
    verifyStatic();
    IOC.register(iFieldNameKey, createNewInstanceStrategy);
    targetFuncArgumentCaptor.getValue().apply(new Object[]{2});
}