Как использовать 2 DataProviders с 2 типами данных с 1 Factory в переопределенном конструкторе - PullRequest
0 голосов
/ 31 декабря 2018

У меня есть два DataProvider s, которые должны устанавливать данные с двумя типами данных (long & double) с одной фабрикой, но когда я запускаю код, тесты принимают разные типы данных, такие как double & int.

public class FactoryTest {

    @Factory(dataProvider ="doubleData")
    public Object[] getArithmeticDoubleFunctions(double firstNumber,double secondNumber)
    {
        System.out.println(String.format("Generate test for user: %s %s", firstNumber, secondNumber));
        return new Object[]{new ArithmeticFunctionsTest(firstNumber,secondNumber)};
    }

    @Factory(dataProvider ="longData")
    public Object[] getArithmeticLongFunctions(long firstNumber1,long secondNumber1)
    {
        System.out.println(String.format("Generate test for user: %s %s", firstNumber1, secondNumber1));
        return new  Object[]{new ArithmeticFunctionsTest( firstNumber1,secondNumber1)};
    }
}

@DataProvider(name="longData")
public Object[][] arithmeticDoubleData() {
    return new Object[][]{{10, 12}, {-1,-1},{-1,23},{0,1},{-1,2}};
}
@DataProvider(name="doubleData")
public Object[][] arithmeticLongData() {
    return new Object[][]{{10.0, 12.3}, {-1.1,-1},{-1.7,23.2},{0,1.2},{-1.1,2.2}};
}

public ArithmeticFunctionsTest(long firstNumber, long secondNubmer) {
    this.firstLongNumber = firstNumber;
    this.secondLongNumber = secondNubmer;
}

public ArithmeticFunctionsTest(double firstNumber, double secondNumber) {
    this.firstDoubleNumber = firstNumber;
    this.secondDoubleNumber = secondNumber;
}

@BeforeClass
public void setUp() {
    calculator = new Calculator();
}

@Test
public void testLongSum() {
    Assert.assertEquals(calculator.sum(firstLongNumber, secondLongNumber), firstLongNumber + secondLongNumber);
    System.out.println(firstLongNumber+" "+secondLongNumber+" Long sum");
}

@Test
public void testDoubleSum() {
    Assert.assertEquals(calculator.sum(firstDoubleNumber, secondDoubleNumber), firstDoubleNumber + secondDoubleNumber);
    System.out.println(firstDoubleNumber+" "+secondDoubleNumber+"double sum");
}

В тесте с типами firstNumber и secondNumber должны быть только поставщики данных с необходимыми типами, но типы смешиваются.

1 Ответ

0 голосов
/ 31 декабря 2018
public class FactoryTest {
    @Factory(dataProvider ="doubleData")
    public Object[] getArithmeticDoubleFunctions(double firstNumber,double secondNumber)
    {
        System.out.println(String.format("Generate test for user: %s %s", firstNumber, secondNumber));
        return new Object[]{new ArithmeticFunctionsTest(firstNumber,secondNumber)};
    }
    @Factory(dataProvider ="longData")
    public Object[] getArithmeticLongFunctions(long firstNumber1,long secondNumber1)
    {
        System.out.println(String.format("Generate test for user: %s %s", firstNumber1, secondNumber1));
        return new  Object[]{new ArithmeticFunctionsTest( firstNumber1,secondNumber1)};
    }

    @DataProvider(name="longData")
    public Object[][] arithmeticDoubleData() {
        return new Object[][]{{10, 12}, {-1,-1},{-1,23},{0,1},{-1,2}};
    }
    @DataProvider(name="doubleData")
    public Object[][] arithmeticLongData() {
        return new Object[][]{{10.0, 12.3}, {-1.1,-1},{-1.7,23.2},{0,1.2},{-1.1,2.2}};
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...