Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
M
m4102_tp3
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Guilhem Heugue
m4102_tp3
Commits
27284b4b
Commit
27284b4b
authored
5 years ago
by
Yvan Peter
Browse files
Options
Downloads
Patches
Plain Diff
ajout commentaires + readme
parent
ce6ec12f
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
README.md
+28
-21
28 additions, 21 deletions
README.md
src/test/java/fr/ulille/iut/pizzaland/IngredientResourceTest.java
+22
-0
22 additions, 0 deletions
.../java/fr/ulille/iut/pizzaland/IngredientResourceTest.java
with
50 additions
and
21 deletions
README.md
+
28
−
21
View file @
27284b4b
...
...
@@ -152,7 +152,7 @@ ingrédient. Elle porte des méthodes pour passer de cette
représentation aux DTO.
Cela permet de découpler l'implémentation de la ressource qui traite
les requêtes HTTP
, de
la donnée manipulée.
les requêtes HTTP
et
la donnée manipulée.
Cette classe pourrait
porter des comportements liés à cette donnée (par ex. calcul de TVA).
...
...
@@ -188,8 +188,34 @@ d'un premier test.
ingredients = response.readEntity(new GenericType<List<IngredientDto>>(){});
assertEquals(0, ingredients.size());
}
En héritant de JerseyTest, votre classe de test se comporte comme un
[
`Client`
JAX-RS
](
https://docs.oracle.com/javaee/7/api/javax/ws/rs/client/Client.html
)
. La
méthode
`target()`
notamment permet de préparer une requête sur une
URI particulière.
Vous pouvez compiler votre code ainsi que les tests au moyen
des commandes
`mvn compile`
et
`mvn test-compile`
. La compilation du
code et des tests se fera automatiquement si nécessaire quand vous
faites un
`mvn test`
.
Pour pouvoir compiler ce premier test, il faut au minimum fournir le
DTO
`IngredientDto`
.
Pour commencer, on se contentera de l'implémentation minimale
suivante :
package fr.ulille.iut.pizzaland.dto;
public class IngredientDto {
public IngredientDto() {
}
}
A ce stade, vous pouvez lancer un premier test au moyen de la commande
`mvn test`
. Évidemment, ce test va échouer.
...
...
@@ -201,15 +227,8 @@ A ce stade, vous pouvez lancer un premier test au moyen de la commande
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0
Vous pouvez compiler votre code ainsi que les tests au moyen
des commandes
`mvn compile`
et
`mvn test-compile`
. La compilation du
code et des tests se fera automatiquement si nécessaire quand vous
faites un
`mvn test`
.
Pour réussir, ce premier test, nous allons mettre en place la
ressource
`IngredientResource`
ainsi que
le DTO (Data Transfer Object) qui représentera les données
transportées dans les requêtes et réponses HTTP.
ressource
`IngredientResource`
.
Une première implémentation de la ressource pourra avoir la forme
suivante :
...
...
@@ -229,18 +248,6 @@ suivante :
return new ArrayList<IngredientDto>();
}
}
Pour réussir ce premier test, on se contentera de l'implémentation
suivante du DTO :
package fr.ulille.iut.pizzaland.dto;
public class IngredientDto {
public IngredientDto() {
}
}
Avec cette première implémentation, on va pouvoir tester notre
ressource :
...
...
This diff is collapsed.
Click to expand it.
src/test/java/fr/ulille/iut/pizzaland/IngredientResourceTest.java
+
22
−
0
View file @
27284b4b
...
...
@@ -18,6 +18,11 @@ import static org.junit.Assert.assertEquals;
import
java.util.List
;
import
java.util.logging.Logger
;
/*
* JerseyTest facilite l'écriture des tests en donnant accès aux
* méthodes de l'interface javax.ws.rs.client.Client.
* la méthode configure() permet de démarrer la ressource à tester
*/
public
class
IngredientResourceTest
extends
JerseyTest
{
private
static
final
Logger
LOGGER
=
Logger
.
getLogger
(
IngredientResourceTest
.
class
.
getName
());
...
...
@@ -26,6 +31,9 @@ public class IngredientResourceTest extends JerseyTest {
return
new
ApiV1
();
}
// Les méthodes setEnvUp() et tearEnvDown() serviront à terme à initialiser la base de données
// et les DAO
// https://stackoverflow.com/questions/25906976/jerseytest-and-junit-throws-nullpointerexception
@Before
public
void
setEnvUp
()
{
...
...
@@ -39,8 +47,22 @@ public class IngredientResourceTest extends JerseyTest {
@Test
public
void
testGetEmptyList
()
{
// La méthode target() permet de préparer une requête sur une URI.
// La classe Response permet de traiter la réponse HTTP reçue.
Response
response
=
target
(
"/ingredients"
).
request
().
get
();
// On vérifie le code de la réponse (200 = OK)
assertEquals
(
Response
.
Status
.
OK
.
getStatusCode
(),
response
.
getStatus
());
// On vérifie la valeur retournée (liste vide)
// L'entité (readEntity() correspond au corps de la réponse HTTP.
// La classe javax.ws.rs.core.GenericType<T> permet de définir le type
// de la réponse lue.
List
<
IngredientDto
>
ingredients
;
ingredients
=
response
.
readEntity
(
new
GenericType
<
List
<
IngredientDto
>>(){});
assertEquals
(
0
,
ingredients
.
size
());
}
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment