Skip to content

Determine beanName just like what @MockBean do #10

@tan9

Description

@tan9

Spring Boot's @MockBean determines beanName automatically:

	private String determineBeanName(String[] existingBeans, SpyDefinition definition,
			BeanDefinitionRegistry registry) {
		if (StringUtils.hasText(definition.getName())) {
			return definition.getName();
		}
		if (existingBeans.length == 1) {
			return existingBeans[0];
		}
		return determinePrimaryCandidate(registry, existingBeans,
				definition.getTypeToSpy());
	}

So that the mock will automatically override existing beans without raising NoUniqueBeanDefinitionException like:

No qualifying bean of type 'com.cht.commons.security.login.UserRegistry' available: expected single matching bean but found 2: userRegistry,userRegistryMock

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions