我一直在TestNG中編寫測試。我的目標是爲測試方法提供可變長度的參數。我面臨一個對我沒有任何意義的問題。代碼如下:TestNG方法中的可變長度參數
@DataProvider(name = "testData")
public static Object[][] testDataProvider() {
return new Object[][] {
{
"hello",
"bye"
}
{
"hey"
}
};
}
@Test(dataProvider = "testData", DataProviderClass = TestData.class)
public void test(String... strings) {
if (strings.length == 1) {
// do something
}
else {
// do something
}
}
此代碼給我IllegalArgumentException
。
1 java.lang.IllegalArgumentException: argument type mismatch
2 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
3 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
4 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
5 at java.lang.reflect.Method.invoke(Method.java:606)
6 at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
7 at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
8 at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
9 at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
10 at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
11 at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
12 at org.testng.TestRunner.privateRun(TestRunner.java:767)
13 at org.testng.TestRunner.run(TestRunner.java:617)
14 at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
15 at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
16 at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
17 at org.testng.SuiteRunner.run(SuiteRunner.java:240)
18 at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
19 at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
20 at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
21 at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
22 at org.testng.TestNG.run(TestNG.java:1057)
23 at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
24 at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
25 at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
請問有人可以告訴我爲什麼會出現這個錯誤,我該如何解決這個問題?
在我的情況下,改變對象[] [] - >字符串[] []幫助。這基本上與@Anuragh27crony建議的一樣,但是可以避免你一直輸入'new String []' –