我有一个Java课。如何检查该类是否包含JUnit4测试的方法?我是否必须使用反射对所有方法进行迭代,还是JUnit4提供这种检查?
编辑:
由于注释不能包含代码,因此我根据以下答案放置了代码:
private static boolean containsUnitTests(Class<?> clazz)
{
List<FrameworkMethod> methods= new TestClass(clazz).getAnnotatedMethods(Test.class);
for (FrameworkMethod eachTestMethod : methods)
{
List<Throwable> errors = new ArrayList<Throwable>();
eachTestMethod.validatePublicVoidNoArg(false, errors);
if (errors.isEmpty())
{
return true;
}
else
{
throw ExceptionUtils.toUncheked(errors.get(0));
}
}
return false;
}
使用内置的JUnit 4类 org.junit.runners.model.FrameworkMethod 来检查方法。
/**
* Get all 'Public', 'Void' , non-static and no-argument methods
* in given Class.
*
* @param clazz
* @return Validate methods list
*/
static List<Method> getValidatePublicVoidNoArgMethods(Class clazz) {
List<Method> result = new ArrayList<Method>();
List<FrameworkMethod> methods= new TestClass(clazz).getAnnotatedMethods(Test.class);
for (FrameworkMethod eachTestMethod : methods){
List<Throwable> errors = new ArrayList<Throwable>();
eachTestMethod.validatePublicVoidNoArg(false, errors);
if (errors.isEmpty()) {
result.add(eachTestMethod.getMethod());
}
}
return result;
}
问题内容: 我有一个不断变化的xml模式(使用trang自动生成)。这些更改不是很详尽。从此架构中仅添加或删除一些元素。通过这种模式,我正在生成Java类(使用cxf),通过它们我将解组xml文档。 随着模式的更改,我的自动生成的Java类也会更改。同样,与模式一样,java类中的更改不是很大。例如,如果将元素say 添加到架构;一些相关的功能说了,并添加到自动生成的java类中。 现在,如何确定
问题内容: 我只是想知道如何检查TreeMap>是否包含Java中的值?例如: 当我使用containsValue()或contains()方法时,我总是会得到false。有人知道为什么,可以给我建议吗? 谢谢爱德 问题答案: 您正在测试以查看地图是否包含字符串“ square”-但是地图中的值是ArrayList 对象。 如果知道要查找形状,则可以首先获取“形状”列表,然后进行测试以查看其是否包
问题内容: 我正在实现是否有位图,那么它应该将图像从imageview保存到内部存储器,否则在应用程序的内部存储器中设置另一个位图。这是代码:_ 问题答案: 您可以按以下方式检查它: 只需检查Bitmap值,如下所示:
问题内容: 有什么方法可以检查一个集合是否包含一个或多个具有比使用contains循环两次更好的性能的值? 在其他意义上看起来像这样 问题答案: 循环的实现遍历每个元素并进行测试,因此调用两次 效率低下 。 您可以编写自己的循环,使用已编译的regex 模式同时检查两者,同时查找两个名称:
有一个任务从控制台得到N个数字,找到最长和最短的一个和他们的长度。任务并不难,工作正常,但我决定做一个检查,如果控制台输入与任务的条件相对应: 只有整数。 是精确的N个数字,而不是更多/更少。 我决定编写一个布尔方法isinputCorret(),它将使用扫描器并检查输入是否正确,但它不能正常工作。