2

プロジェクトに Testng 6.8.5 と Jmockit 1.4 を使用しています。テスト パラメータ レベルの@DataProviderJmockitアノテーションで testngを使用したい。@Mocked

@Test
public void testRemove(@Mocked Creator) throws Exception {
   //Test Code
}

上記のテストを別のデータ セット (を使用@DataProvider) で使用したいのですが、メソッド シグネチャを次のように変更すると:

public void testRemove(@Mocked Creator creator, int id, String name)

idとがnameDataProvider によって提供される場合、TestNG は、DataProvider が 3 つではなく 2 つのパラメーターのみを提供すると言って失敗します。

これを達成する方法を知っている人はいますか?

4

3 に答える 3

1

次のこともできます (TestNG 6.8.21 と Jmockit 1.20 でテストしたところ、オブジェクトが正しくモックされます)。

public class UserTest {

    @DataProvider(name = "creatorProvider")
    public Oject[][] dataProvider() {
      return new Object[][] {{null, 1 "t1"}, {null, 2, "t2"}};
    }


    @Test(dataProvider = "creatorProvider")
    public void testRemove(@Mocked final Creator creator, int id, String name) {
        new Expectations() {{
            creator.doSomething(id, name); result = expectedResult;
        }};

        //other test code
    }
}
于 2015-11-17T18:58:10.070 に答える