- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
有没有办法使用 @TestCaseName
注释打印数组的内容(作为测试参数之一传递)?
我的意思是我要这个测试用例
private static final File JAVA_DIRECTORY = get("src/main/java/").toFile();
private static final String[] NOT_ACCEPTABLE_IN_JAVA_DIRECTORY = {"groovy", "css", "html"};
public Object[] filesNotAcceptedInDirectories() {
return $(
$(JAVA_DIRECTORY, NOT_ACCEPTABLE_IN_JAVA_DIRECTORY)
);
}
@Test
@Parameters(method = "filesNotAcceptedInDirectories")
@TestCaseName("Verify that no files with extensions {1} are present in directory {0}")
public void verifyFilesArePlacedInAppropriateDirectories(File directory, String[] unacceptableFiles) {
assertThat(listFiles(directory, unacceptableFiles, true)).isEmpty();
}
显示为
Verify that no files with extensions [groovy, css, html] are present in directory src\main\java
我目前得到的是
Verify that no files with extensions String[] are present in directory src\main\java
最佳答案
目前看来是不可能的。将参数字符串化的部分是junitparams.internal.Utils#addParamToResult
:
private static String addParamToResult(String result, Object param) {
if (param == null)
result += "null";
else {
try {
tryFindingOverridenToString(param);
result += param.toString();
} catch (Exception e) {
result += param.getClass().getSimpleName();
}
}
return result;
}
private static void tryFindingOverridenToString(Object param)
throws NoSuchMethodException {
final Method toString = param.getClass().getMethod("toString");
if (toString.getDeclaringClass().equals(Object.class)) {
throw new NoSuchMethodException();
}
}
您可以看到,只有在参数覆盖 Object#toString
时才会使用覆盖 toString
的情况,否则它只是类的简单名称,在 a 的情况下字符串数组是 String[]
。
关于java - 从作为参数传递的数组创建测试用例名称(使用 JUnitParams),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34507375/
@RunWith(JUnitParamsRunner.class) public class MySimpleTest { private MyRec rec; private Mat
JUnitParams 仅传递原始对象(String、int)而不传递其他对象,例如: @Test @Parameters testMethod(String sample, MyObj myobj,
是否可以使用 JUnitParams 和类级别注释为测试类的每个方法运行参数化测试?像这样的东西: @RunWith(JUnitParamsRunner.class) @Parameters(meth
考虑这个测试类,使用 JUnit 4 和 JUnitParams: import static junitparams.JUnitParamsRunner.$; import junitparams.
我遇到这种情况,我正在使用 junitparams 从输入文件中读取值。在某些情况下,我的行在所有列(比如 5)中都有值,但是在其他情况下,只有前几列有值。我希望 junitparams 为可用变量分
有没有办法使用 @TestCaseName 注释打印数组的内容(作为测试参数之一传递)? 我的意思是我要这个测试用例 private static final File JAVA_DIRECTORY
我正在使用 JUnitParams 和 Mockito 编写一个测试类。我想使用 Mockito 模拟 作为参数。在我的测试中,我有大约十个模拟,我只想通过一个模拟来为其定义特殊行为。 我在一个简单的
你能告诉我为什么测试不起作用吗?我得到: java.lang.IllegalStateException: While trying to create object of class class [
我正在尝试将 PowerMock 与 JUnitParams 一起使用,但是我收到了这个奇怪的错误: com.thoughtworks.xstream.converters.ConversionExc
这可能是一个 XY 问题,但我想问: 我正在使用 JUnitParams 来对不同的对象运行我的测试方法 10 次。问题是注入(inject)不起作用(@Mock 和 @InjectMocks)。我可
我正在尝试学习 JUnit。为了解决一个特定问题,我决定使用 JUnitParams 参数提供程序。我正在编写的测试方法的每组参数都应包含两个输入值和一个列表,将根据该列表来测试方法调用的结果: pr
我尝试使用 JUnitParamsRunner 的 FileParameters 注释。我不能给变量 null。代码和测试文件如下。 @RunWith(JUnitParamsRunner.class)
描述 在 Android 19 及更低版本上使用 JunitParams 运行程序时,我看到一个异常。 重现步骤 编写简单的测试套件并使用最新的 Android 测试支持库在 Android 19 或
我正在尝试使用 JunitParams 来参数化我的测试。但我的主要问题是参数是带有特殊字符、波浪号或竖线的字符串。 import org.junit.Rule; import org.junit.T
对于 Java 中的参数化测试,jUnit 4.11 (@Parameters(name="namestring")) 中公开的“自定义测试名称”功能是否可以与 Google junitparams
我是一名优秀的程序员,十分优秀!