2

版本: powermock-core 1.4.12

问题: 根据API 文档,@PrepareForTest 应该能够采用通配符,例如:

@PrepareForTest("com.smin.*")

但就我而言,它只是不编译,编译错误:

Type mismatch: cannot convert from String to Class<?>[]

我看了一下 PrepareForTest 的源代码,我只是不明白这个注解如何将通配符作为它的值。有任何想法吗?

@Target( { ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface PrepareForTest {
    Class<?>[] value() default IndicateReloadClass.class;

    String[] fullyQualifiedNames() default "";
}
4

1 回答 1

5

是的 - 文档似乎与现实不符。尝试:

@PrepareForTest(fullyQualifiedNames={"com.smin.*"})

如果您想深入挖掘,我认为通配符名称的解析将发生在MockClassLoader或其超类中。DeferSupportingClassLoader

于 2012-11-21T21:07:54.233 回答