Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
framework-web:spring:td0 [2019/02/07 16:18]
jcheron
framework-web:spring:td0 [2020/01/21 11:09] (Version actuelle)
jcheron [Publication, mise en production]
Ligne 36: Ligne 36:
  <meta charset="​UTF-8">​  <meta charset="​UTF-8">​
  <​title>​Gestion d'​items</​title>​  <​title>​Gestion d'​items</​title>​
-<link rel="​stylesheet"​ type="​text/​css"​ href="​https://​cdnjs.cloudflare.com/​ajax/​libs/​semantic-ui/2.4.1/​semantic.min.css">​+<link rel="​stylesheet"​ type="​text/​css"​ href="​https://​cdnjs.cloudflare.com/​ajax/​libs/​fomantic-ui/2.7.8/​semantic.min.css">​
 </​head>​ </​head>​
 <​body>​ <​body>​
Ligne 47: Ligne 47:
 <sxh html;​title:​resources/​templates/​footer.html>​ <sxh html;​title:​resources/​templates/​footer.html>​
 </​div><​!-- Fermeture de la div ui-container --> </​div><​!-- Fermeture de la div ui-container -->
-<script src="​https://​cdnjs.cloudflare.com/​ajax/​libs/​jquery/​3.3.1/​jquery.min.js"></​script>​ +<script src="​https://​cdnjs.cloudflare.com/​ajax/​libs/​jquery/​3.4.1/​jquery.min.js"></​script>​ 
-<script src="​https://​cdnjs.cloudflare.com/​ajax/​libs/​semantic-ui/2.4.1/​semantic.min.js"></​script>​+<script src="​https://​cdnjs.cloudflare.com/​ajax/​libs/​fomantic-ui/2.7.8/​semantic.min.js"></​script>​
 </​body>​ </​body>​
 </​html>​ </​html>​
Ligne 73: Ligne 73:
  
  @ModelAttribute("​items"​) ​  @ModelAttribute("​items"​) ​
- public List<String> getItems(){+ public List<Element> getItems(){
  return new ArrayList<>​();​  return new ArrayList<>​();​
  }  }
Ligne 102: Ligne 102:
 ==== Ajouts/​modifications ==== ==== Ajouts/​modifications ====
  
-  * Ajouter la route **items/​delete/​{index}** pour supprimer un item par son index+  * Ajouter la route **items/​delete/​{nom}** pour supprimer un item par son nom
   * Restructurer l'​application :   * Restructurer l'​application :
     * Ajouter une classe **s4.spring.models.Categorie** ayant un **libelle** et pouvant comporter une liste d'​**items**     * Ajouter une classe **s4.spring.models.Categorie** ayant un **libelle** et pouvant comporter une liste d'​**items**
Ligne 108: Ligne 108:
     * Mettre en session la liste des catégories,​ initialisée par défaut avec les catégories Amis, Famille, Professionnels     * Mettre en session la liste des catégories,​ initialisée par défaut avec les catégories Amis, Famille, Professionnels
     * Afficher sur la route **/** les catégories et les items contenus (on pourra utiliser le composant [[https://​semantic-ui.com/​modules/​tab.html|Tab]])     * Afficher sur la route **/** les catégories et les items contenus (on pourra utiliser le composant [[https://​semantic-ui.com/​modules/​tab.html|Tab]])
 +
 +===== Tests, intégration,​ déploiement =====
 +
 +==== Tests unitaires et tests d'​intégration ====
 +
 +Utilisation de **MockMvc**:​
 +<sxh java;​title:​Td1ApplicationTests.java>​
 +package s4.spring.td1;​
 +
 +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;​
 +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;​
 +
 +import org.junit.jupiter.api.Test;​
 +import org.springframework.beans.factory.annotation.Autowired;​
 +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;​
 +import org.springframework.boot.test.context.SpringBootTest;​
 +import org.springframework.test.web.servlet.MockMvc;​
 +
 +@SpringBootTest
 +@AutoConfigureMockMvc
 +class Td1ApplicationTests {
 + @Autowired
 + private MockMvc mvc;
 +
 + @Test
 + void contextLoads() {
 + }
 +
 + @Test
 + void loadHello() throws Exception {
 + this.mvc.perform(get("/"​)).andExpect(content().string("​Hello world!"​));​
 + }
 +}
 +</​sxh>​
 +
 +==== Intégration continue ====
 +
 +  * Créer un compte ou se connecter sur [[https://​travis-ci.org|Travis-ci]]
 +  * Ajouter le repository github
 +  * Créer le fichier de configuration **.travis.yml** à la racine du repo git
 +
 +<sxh py;​title.travis.yml>​
 +language: java
 +cache:
 +  directories:​
 +    - '​$HOME/​.m2/​repository'​
 +before_install:​
 +  - chmod +x mvnw
 +script:
 +  - ./mvnw install -DskipTests=true -Dmaven.javadoc.skip=true -B -V
 +  - ./mvnw test -B
 +</​sxh>​
 +
 +Ajouter le build status badge dans le fichier **README.md** :
 +<sxh>
 +[![Build Status](https://​travis-ci.org/<​username>/<​reponame>​.svg?​branch=master)](https://​travis-ci.org/<​username>/<​reponame>​)
 +</​sxh>​
 +==== Publication,​ mise en production ====
 +
 +  * Créer un compte sur [[https://​heroku.com|Heroku]]
 +  * Ajouter une application de nom **<​prenom>​.<​nom>​**
 +  * La connecter à github et activer le déploiement automatique (si les tests passent)
 +
 +
framework-web/spring/td0.1549552697.txt.gz · Dernière modification: 2019/02/07 16:18 par jcheron
GNU Free Documentation License 1.3
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0