Запросы на фиктивные объекты - PullRequest
0 голосов
/ 02 ноября 2011
  1. Возможно ли создать фиктивный объект с аргументами конструктора.Например, скажем, у меня есть объект и используются два вида конструкторов.Как?

    Class test{
    List<String> list
    public test()
    {
      list = new ArrayList<String>()
    }
    
     public test(List<String> list)
     {
      this.list = list
     }
    }
    

Вопрос 2: Могу ли я использовать ожидание для реального объекта, если один из его методов возвращает фиктивный объект. Например, PreferenceService prefServ = easyMock.create (...)Теперь prefServ является фиктивным объектом, который возвращается одним из методов в классе «Test», например, PreferenceService getPreferenceService ().Если я создаю реальный объект типа Test, могу ли я использовать функцию ожидаемого (test.getPreferenceService ()). AndReturn (mockPreferenceService) ???Я получаю ошибку, которая говорит о несовместимом типе возвращаемого значения.

1 Ответ

0 голосов
/ 02 ноября 2011

Я думаю, что вы хотите, это частичное издевательство. Вы могли бы сделать:

PreferenceService prefServ = createMock(PreferenceService.class);
Test defaultTest = createMockBuilder(Test.class).addMockMethod("getPreferenceService").
    createMock();
expect(defaultTest.getPreferenceService()).andReturn(prefServ);

Теперь у вас есть defaultTest, созданный с помощью конструктора по умолчанию, который является реальным экземпляром Test, за исключением того, что метод getPreferenceService () является ложным.

List<String> testList = new ArrayList<String>();
Test otherConstructorTest = createMockBuilder(Test.class).
    addMockMethod("getPreferenceService").withConstructor(testList);
expect(defaultTest.getPreferenceService()).andReturn(prefServ);

Теперь у вас есть то же, что и выше, но на этот раз объект Test был создан с помощью конструктора List.

...