powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / easymock замокать новый инстанс в методе
15 сообщений из 15, страница 1 из 1
easymock замокать новый инстанс в методе
    #38972015
mr_virtus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет.

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

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

Например:


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

    ObjectForMock objectForMock = new ObjectForMock();
}



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

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

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

Код: 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
easymock замокать новый инстанс в методе
    #38972145
mr_virtus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник,

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

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



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

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

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


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