2015-05-05 5 views
0

Я новичок в платформе Spring и нуждаюсь в тестировании некоторых программных продуктов. Внутренний интерфейс написан в трех слоях: i) dao, ii) Services и iii) контроллерах. «Дао» - это ближайший уровень базы данных, и все SQL-запросы есть. Уровень «services» используется для создания JSON извлеченных данных с уровня «dao». Уровень «контроллеров» используется для того, чтобы вывести строку JSON в интерфейс.Тестирование исходного кода Spring

Архитектура [база < -> дао < -> Услуги < -> Контроллеры < -> передний конец]

Пример кода для трех слоев следующее ->

GDao.java 
============== 

@Repository 
public class GarageDao { 

    private JdbcTemplate m_oJdbcTemplateObj; 

    @Autowired 
    public void setDataSource(DataSource dataSource) { 
     this.m_oJdbcTemplateObj = new JdbcTemplate(dataSource); 
    } 

    /** 
    * Query data base to get all the parking site id, identifier, description, and shape 
    * @return list of map 
    */ 

    public List<Map<String,Object>> getAllLocation() { 
     List<Map<String, Object>> results; 
     try{ 
      // 
     } 
     catch(Exception e){ 
      // 
     } 
     return results; 
    } 
} 

GServices.java 
=================== 

@Service("m_oGarageService") 
public class GarageServices { 

    @Autowired 
    private GarageDao m_oGarageDao; 

    public String getAllLocation() { 

     List< Map<String, Object> > results = m_oGarageDao.getAllLocation(); 

     try { 

      if (null != results) { 

       JSONObject featureCollection = new JSONObject(); 
       featureCollection .put("type", "FeatureCollection"); 


    JSONArray featureList = new JSONArray(); 

         for (Map<String, Object> m : results) { 
      // some code to insert data into featureList 
    } 
       // return JSON data String 
       return featureCollection.toString(); 
      }  
     } 

     catch (JSONException e) { 
      // some code 
     } 
     return null; 
    } 
} 

GControllers.java 
====================== 

@Controller 
@RequestMapping("/garage") 

public class GarageController { 

    @Autowired 
    private GarageServices m_oGarageService; 


    @RequestMapping("/getall") 

    public @ResponseBody ResponseEntity<String> getAllLocation(){ 
     HttpHeaders ResultHeader = new HttpHeaders(); 
     ResultHeader.set("Access-Control-Allow-Origin", "*"); 
     ResultHeader.set("Content-Type", "application/json"); 
     String result = m_oGarageService.getAllLocation(); 

     if(null == result){ 
      // some code 
     } 
     return new ResponseEntity<String>(result, ResultHeader, HttpStatus.OK); 
    } 
} 

Как запустить тест записи для внешнего сервера? Благодарю.

+1

Ваш работодатель в порядке, если вы вставляете этот код; в частности, если вы вставляете имена баз данных и таблиц (таблиц)? – Makoto

+0

Какова конкретная проблема, так же широко распространена –

+0

Это всего лишь образец кода. Мне нужно некоторое псевдокод для начала работы. – Arefe

ответ

0

Во-первых, я бы использовал репозитории Spring Data вместо пользовательского кода DAO. Затем напишите ваши бобы, чтобы использовать инъекцию конструктора, и просто проверяйте их с помощью mocks так же, как и с другими, с Mockito или Spock.

+0

Можете ли вы предоставить какой-либо пример кода, как написать тест с помощью Mockito? Я получаю строку JSON в качестве вывода. – Arefe

+0

@Arefe Ваши 'GarageServices' не должны возвращать строку. Он должен возвращать обычные объекты Java. Spring MVC будет обрабатывать перевод объектов JSON для вас. – chrylis

+0

Не уверен, что я правильно понимаю. У меня есть объект JSON (import org.json.JSONObject) JSONObject, а именно featureCollection. Я вернул это в исходный файл GControllers.java после преобразования в String. – Arefe

 Смежные вопросы

  • Нет связанных вопросов^_^