package org.testng.junit; import org.junit.runner.Description; import org.testng.internal.ConstructorOrMethod; import java.lang.reflect.Method; public class JUnit4SpockMethod extends ConstructorOrMethod { private static final Class<?> SPOCK_SPEC_CLASS = getSpockSpecClass(); private static Class<?> getSpockSpecClass() { try { return Class.forName("spock.lang.Specification"); } catch (ClassNotFoundException e) { return null; } } public static boolean isSpockClass(Class<?> testClass) { return JUnit4SpockMethod.SPOCK_SPEC_CLASS != null && JUnit4SpockMethod.SPOCK_SPEC_CLASS.isAssignableFrom(testClass); } private final Class<?> declaringClass; private final String description; public JUnit4SpockMethod(Description description) { super((Method)null); this.declaringClass = description.getTestClass(); this.description = description.getDisplayName(); } @Override public Class<?> getDeclaringClass() { return declaringClass; } @Override public String getName() { return description; } @Override public String toString() { return getName(); } }