Как написать easyMock.expect для int [] - PullRequest
0 голосов
/ 31 октября 2019

Бросок ошибки Исключение прицеливания.

public class A{
      public method_name(){
      int[] selections = grid.getSelectedIndices(); // Facing issue here...!
      // Problem occur above line.
      }
}

public class A_test{
    Grid grid = EasyMock.createNicemock(Grid.class);
    EasyMock.expect(grid.getSelectedIndices().andReturn(EasyMock.arEq(new int[] {1})));
    EasyMock.replay(grid);    

// I able to invoke method with the help of reflection
// method.invoke();
}

Вопрос: я не могу ожидать "getSelectedIndices ()". При некоторых изменениях это дает мне ошибку 0 соответствий и 1 сообщил. Как не может сопоставить фиктивный объект и необработанное значение

Ответы [ 2 ]

0 голосов
/ 03 ноября 2019

Похоже на другой ответ. Это работает так, что вы ожидаете аргументы, сопоставляя их, и если это совпадение, вы возвращаете значение. Так что код должен быть.

public class A_test {
    Grid grid = niceMock(Grid.class);
    expect(grid.getSelectedIndices()).andReturn(new int[] {1});
    replay(grid);    

    A a = new A(grid);
    a.method_name(); 
}
0 голосов
/ 31 октября 2019

Метод andReturn принимает возвращаемое значение в качестве аргумента, но EasyMock.aryEq возвращает ноль (см. Источник ). Вы можете просто использовать .andReturn(new int[] {1}) вместо .andReturn(EasyMock.arEq(new int[] {1}))).

...