Java 如何在junit中为字符串数组输入编写测试用例?(junit新增)

Java 如何在junit中为字符串数组输入编写测试用例?(junit新增),java,maven,junit,Java,Maven,Junit,我是junit新手,尝试为我的程序编写2个测试用例,但无法执行,因为它一直说参数类型不匹配。 只要看看代码,如果可能,请让我知道正确的解决方案。 对于简单变量及其工作方式,我也尝试过同样的方法,但对于字符串数组,它不起作用 逻辑类: 在这里,我试图将字符串中的每个字母推入堆栈 public class myClass{ protected double myLogic(String[] exp) { Stack<Double> s = new Stack<Dou

我是junit新手,尝试为我的程序编写2个测试用例,但无法执行,因为它一直说参数类型不匹配。 只要看看代码,如果可能,请让我知道正确的解决方案。 对于简单变量及其工作方式,我也尝试过同样的方法,但对于字符串数组,它不起作用

逻辑类: 在这里,我试图将字符串中的每个字母推入堆栈

public class myClass{   

protected double myLogic(String[] exp) {
    Stack<Double> s = new Stack<Double>();
    String[] expArr = null;
    for (int j = 0; j < exp.length; j++) {
        expArr = exp[j].split("\\s");
    }
    for (int i = 0; i < expArr.length; i++) {

        if (expArr[i].matches("[0-9]+") || expArr[i].matches("[0-9].+")) {
            s.push(Double.parseDouble(String.valueOf(expArr[i])));
        }

}
 return s.pop();
}

方法
data()
提供了
String
s的列表。这意味着每个参数集都是一个
字符串。不幸的是,您的测试类构造函数需要一个
字符串
数组,而不是一个
字符串
。这就是测试失败的原因。

请将错误/日志消息也添加到帖子中……没有错误日志,当从控制台获取字符串输入时,代码工作正常。但是通过使用Junit测试用例,它失败了。我可能没有正确地实现Junit测试用例。Junit选项卡中的错误是“参数不匹配”,请尝试通过
mvn clean package
在命令行上运行构建……我已经尝试过了,但没有发现任何运气。。!我已经添加了错误日志供您参考,如果您有任何建议,请查看并告知我。谢谢:)你是说,我应该声明两个单独的字符串变量,然后继续测试用例?
@RunWith(Parameterized.class)
public class MyTestCasess {

public String[] exp=null;
public Double[] pfResult = { 3, 3 };

public MyTestCasess(String[] exp1) {

    for(int i=0;i<exp1.length;i++){
        exp[i]=exp1[i];
    }
}

@Parameters
public static List<String> data() {
    String[] data = { "1 2 3", "6 2 3" };
    return Arrays.asList(data);
}

@Test
public void testMainCaller() {
    myClass objExp = new myClass();     
    Assert.assertEquals("Result", pfResult, objExp.myLogic(exp));

}

}
java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.junit.runners.parameterized.BlockJUnit4ClassRunnerWithParameters.createTestUsingConstructorInjection(BlockJUnit4ClassRunnerWithParameters.java:43)
at org.junit.runners.parameterized.BlockJUnit4ClassRunnerWithParameters.createTest(BlockJUnit4ClassRunnerWithParameters.java:38)
at org.junit.runners.BlockJUnit4ClassRunner$1.runReflectiveCall(BlockJUnit4ClassRunner.java:266)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:263)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runners.Suite.runChild(Suite.java:128)
at org.junit.runners.Suite.runChild(Suite.java:27)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)