Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / easymock замокать новый инстанс в методе / 15 сообщений из 15, страница 1 из 1
29.05.2015, 16:33
    #38972015
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
easymock замокать новый инстанс в методе
Привет.

Подскажите, кто знает, использую easymock

нужно замокать экземпляр, который создается в тестируемом методе.

Например:


Код: java
1.
2.
3.
4.
public void method(){

    ObjectForMock objectForMock = new ObjectForMock();
}



и потом я этот метод тестирую. И в тестовом методе мне надо как то написать чтоб, objectForMock - мокался.
...
Рейтинг: 0 / 0
29.05.2015, 18:17
    #38972109
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
easymock замокать новый инстанс в методе
надо делать филдом класса
...
Рейтинг: 0 / 0
29.05.2015, 18:30
    #38972120
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
easymock замокать новый инстанс в методе
забыл ник,

он филд на самом деле. неправильно выше я написал. ну а как с филдом это сделать, если он потом инстанцируется конструктором все равно?

то есть теоритически я могу этот филд заинжектить, но толку то?
...
Рейтинг: 0 / 0
29.05.2015, 19:26
    #38972142
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
easymock замокать новый инстанс в методе
ну я спринг юзаю, там все заводится с полоборота

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
@Autowired
	AccountSupportFacade accountSupportFacade;
	
	@Mock
    ClientService clientService;
    
	@Mock
    CashManagementService cashManagementService;
    
	@Mock
    AccountSupportingInfoService service;
	
	@Before
    public void setUp() throws Exception {
        MockitoAnnotations.initMocks(this);
        ReflectionTestUtils.setField(accountSupportFacade, "clientService", clientService);
        ReflectionTestUtils.setField(accountSupportFacade, "cashManagementService", cashManagementService);
        ReflectionTestUtils.setField(accountSupportFacade, "service", service);
    }
...
Рейтинг: 0 / 0
29.05.2015, 19:34
    #38972145
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
easymock замокать новый инстанс в методе
забыл ник,

ну я так и имел в виду про инжект. только я так бины инжекчу. а вот когда филд потом в методе через конструктор инстанцируется, не уверен что так прокатит.
...
Рейтинг: 0 / 0
29.05.2015, 19:53
    #38972155
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
easymock замокать новый инстанс в методе
1) MockitoAnnotations.initMocks(this); Тут ваш класс создается, вызывается конструктор и сетится филд
2) ReflectionTestUtils.setField(accountSupportFacade, "clientService", clientService); тут филд перебивается.
Как оно может не работать? Ну и что значит имхо не прокатит?:) Пробовать надо)
...
Рейтинг: 0 / 0
29.05.2015, 21:30
    #38972184
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
easymock замокать новый инстанс в методе
забыл ник,
Попробую, спасибо!
...
Рейтинг: 0 / 0
01.06.2015, 11:50
    #38973096
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
easymock замокать новый инстанс в методе
забыл ник, у меня загвоздка в том, что мне нужно конструктор протестить. Про метод я погорячился в первом посте. Создание мок объекта в конструкторе происходит.
...
Рейтинг: 0 / 0
01.06.2015, 11:55
    #38973101
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
easymock замокать новый инстанс в методе
ну и дальше следовательно проблема с тестом других методов - потому что, для теста метода я создаю экземпляр объекта, методы которого собираюсь тестить. И нужно замокать объект контекст, который инициализируется в конструкторе моего класса "сервис". А объект контекст мне нужен, чтоб потом connectionFactory создавать.
...
Рейтинг: 0 / 0
01.06.2015, 12:01
    #38973109
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
easymock замокать новый инстанс в методе
mr_virtus,
Что у вас за логика в конструкторе которую надо тестировать?
...
Рейтинг: 0 / 0
01.06.2015, 12:02
    #38973110
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
easymock замокать новый инстанс в методе
Вообще ничего не понимаю, почти уверен что вы лечите зубы через задний проход. Код уже выложите
...
Рейтинг: 0 / 0
01.06.2015, 12:21
    #38973132
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
easymock замокать новый инстанс в методе
забыл ник,

Код: java
1.
2.
context = new InitialContext(initProperties);
connectionFactory = (QueueConnectionFactory) context.lookup(properties.getProperty(JNDI_NAME));



у меня есть класс который работает с jms. В его конструкторе я создаю контекст для работы с jms и connectionFactory для работы с очередями. Дальше есть в классе различные методы для работы с jms которые и надо протестировать. Надеюсь понятно написал.
...
Рейтинг: 0 / 0
01.06.2015, 12:25
    #38973140
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
easymock замокать новый инстанс в методе
забыл ник,
авторВообще ничего не понимаю, почти уверен что вы лечите зубы через задний проход

может, я и пытаюсь понять что я делаю не так, либо как все-таки это сделать.
...
Рейтинг: 0 / 0
01.06.2015, 12:31
    #38973147
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
easymock замокать новый инстанс в методе
Походу вы выбрали не тот инструмент. EasyMock, ну даже если смотреть на название предназначен для того чтобы легко замокать все депенденси класса. Вы же хотите написать интеграционный тест, JUnit для этого подходит гораздо лучше.
...
Рейтинг: 0 / 0
01.06.2015, 13:02
    #38973195
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
easymock замокать новый инстанс в методе
забыл ник,

я использую junit и easymock вместе. У меня есть класс, методы которого нужно протестировать юнит тестами. Но просто создать экземпляр класса в юнит тесте и запустить его методы на тестирование я не могу, потому что в конструкторе класса есть объект, который сейчас не проинициализируется сам по себе. Для этого нужно настроить как минимум базу. Но тем не менее мне нужно протестировать юнит тестами этот класс. Но замокать у меня не получается - так он в конструкторе. А средств это сделать с EasyMock я не знаю.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / easymock замокать новый инстанс в методе / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]