objA.doJob(entity);
doJob
меняет в переданном бине параметр, но не меняет имя бина. Надо проверить то, что параметр изменён.doJob()
вызывает objB.serviceCall()
, который стучится в базу (загружает энтити) или делает вызов на сторонний вебсервис и возвращает энтити бин, который как-то будет влиять на наш переданный entity, и менять в нём параметр. import static org.mockito.Mockito.*;
// Создаём детерминированный бин, по которому будем делать проверки
// Это то, что якобы должно тянуться из источника данных
EntityBean entity = new EntittyBean("TestName", "Test parameter");
//автоматически создаём мок
ObjB objB = mock(ObjB.class);
//Самый важный вызов - заставляем мок возвращать нам нужный бин при вызове метода serviceCall
when(objB.serviceCall()).thenReturn(entity)
//Создаём реальный инстанс тестируемого класса - чтобы вызывать реальные методы
ObjA objA = new ObjA();
//Инжектируем мок. Я надеюсь, у вас все зависимости не @Autowired private поля без сеттеров? ;)
objA.setObjB(objB);
//Вызываем метод
EntityBean testEntity = new EntityBean("Another name", "Another parameter");
objA.doJob(testEntity);
//По правилам нашего метода, testEntity должен получить параметр из entity
assertEquals(testEntity.getParameter(), entity.getParameter());
// Но имя бина не должно измениться
assertNotEquals(testEntity.getName(), entity.getName());
Я согласен, что нужно начать с основ (html + css + js + http), но только в качестве теоретической базы. А практически можно использовать связку Twitter Bootstrap + jQuery + NodeJS.
Такой набор позволит проникнуться сутью веб-разработки и даст навыки работы с базовыми инструментами.