0% ont trouvé ce document utile (0 vote)
4 vues9 pages

Java et JUnit : Devoir 3 Guide

Cette assignation évalue les compétences en programmation Java et JUnit des étudiants. Les tâches incluent le clonage d'un dépôt GitHub, le développement d'une classe Java MyString et la création de cas de test JUnit. Les soumissions doivent être faites via GitHub et Gradescope, avec des instructions spécifiques sur la structure et le contenu des fichiers à soumettre.

Traduit par

ScribdTranslations
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues9 pages

Java et JUnit : Devoir 3 Guide

Cette assignation évalue les compétences en programmation Java et JUnit des étudiants. Les tâches incluent le clonage d'un dépôt GitHub, le développement d'une classe Java MyString et la création de cas de test JUnit. Les soumissions doivent être faites via GitHub et Gradescope, avec des instructions spécifiques sur la structure et le contenu des fichiers à soumettre.

Traduit par

ScribdTranslations
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Assignment 3:

Programmation Java de base et JUnit

Cette assignation évalue vos connaissances de base en Java et JUnit, nécessaires pour
future assignments and projects.

Instructions
Pour terminer l'affectation, vous devez accomplir les tâches suivantes :
Clonez votre dépôt GitHub individuel dans votre espace de travail local. C'est le même
répertoire que vous avez utilisé pour le devoir précédent et que vous utiliserez pour tous les futurs travaux individuels
assignments:
[Link] d'utilisateur GT>.git
Téléchargez l'archivedevoir [Link]
● Extrayez l'archive dans le répertoire racine du dépôt, ce qui créera un répertoire
appelé Assignment3 et plusieurs sous-répertoires. À partir de maintenant, nous allons nous référer au répertoire
Devoir3dans votre dépôt local en tant que <dir>.
(Si vous ne savez pas comment extraitre une archive « [Link] », vous devriez pouvoir trouver beaucoup de
ressources sur la façon de faire cela en ligne--demandez sur Ed Discussion sinon.)
○ Le répertoire <dir>/src contient, dans un répertoire approprié, l'interface Java
[Link]. Il contient également une classe d'exception
[Link], qui est utilisé par le
interface.
○ Le répertoire <dir>/testcontains, dans un répertoire approprié, contient une classe de test JUnit de modèle

[Link].
○ <dir>/lib/[Link] et <dir>/lib/[Link]
Bibliothèques JUnit et Hamcrest à utiliser pour le devoir.
●Votre première tâche est de développer une classe Java appelée MyString qui implémente de manière appropriée

theMyStringInterfaceinterface that we provided. (The semantics of the methods in


l'interface devrait être évidente à partir de leur nom, les commentaires JavaDoc dans le code,
et les exemples de test dans la classe MyStringTest--demandez sur Ed Discussion sinon.) Classe
MyStringshould be in the same package as the interface and should also be saved
sous<dir>/src/edu/gatech/seclass.
●Votre deuxième tâche est de développer un ensemble de cas de test JUnit4 pour la classe MyString par
complétant le modèle fourni test classMyStringTest, qui contient 3
cas de test complets et 13 cas de test à compléter. Pour chaque cas de test dans la classe
MonTestDeChaineDont le corps se compose simplement de l'espace réservé « échouer("Pas encore
implémenté" );", vous devez faire ce qui suit :
○Remplacez l'instruction de remplacement par un cas de test significatif pour le
méthode correspondante, qui est indiquée dans les commentaires et le nom du
test.
Remplacez le texte « <Ajoutez ici la description du test> » dans le commentaire de test par
une description concise de l'objectif du test (par exemple, "Compter les chaînes dans un
chaîne vide") sans modifier quoi que ce soit d'autre dans le commentaire et faisant
assurez-vous que votre commentaire consiste en une seule ligne (c'est-à-dire, ne contient pas
Saut de ligne) et ne contient pas de guillemets ou d'autres caractères spéciaux.
○Assurez-vous que chaque méthode de test dispose d'un oracle approprié (c'est-à-dire, soit un)
une assertion ou une exception attendue) et que les tests ne sont pas triviaux (c'est-à-dire ne sont pas
une copie de celle fournie et avoir un but spécifique). En d'autres termes, chaque
le test devrait (1) tester un aspect spécifique de la fonctionnalité, et (2) vérifier qu'un tel
la fonctionnalité se comporte comme prévu.
○ Cela devrait être évident, mais veuillez également vous assurer que tous les cas de test que vous
créé un pass lorsqu'il est exécuté contre votre code.
De plus, au moins deux des tests que vous développez doivent aboutir à un
exception attendue (par exemple, NullPointerException). Lors de tests pour un
exception attendue, assurez-vous d'utiliser "@Test(expected = <exception
notation class>)” (par exemple, @Test(expected = [Link])),
plutôt que de capturer l'exception dans le corps du test.
○ Considérez, par exemple, le cas de test testCountNumbersS2() :
@Test
// Description: <Add test description here>
public void testCountNumbersS2() {
fail("Not yet implemented");
}
Dans votre soumission, vous devriez avoir un test complet correspondant pour la méthode
countNumbersin classMyString, together with a concise description of the
objectif de la méthode, tel que :
@Test
// Description:Count numbers in an empty string
public void testCountNumbersS2() {
<test réel, y compris l'oracle>
}

Soumission
Pour soumettre votre solution, vous devez :
●Engagez le répertoire <dir> et poussez-le vers le dépôt GitHub distant individuel que nous
assigné à vous. Assurez-vous de ne pas pousser votre travail vers un autre dépôt, en particulier un public
dans le meilleur des cas, vous pourriez finir par soumettre un identifiant de commit que nous ne pouvons pas trouver. Dans le

dans le pire des cas, vous pourriez violer le code d'honneur.


● Assurez-vous de valider et de pousser les bibliothèques fournies (répertoire lib). Pour ce faire, vous pouvez
vous devez forcer l'ajout des fichiers jar (c'est-à-dire, "git add -f lib/*"), qui sont généralement exclus par le
“.gitignore” file.
●Soumettez sur Gradescope un fichier, appelé [Link], qui contient, en deux parties séparées
(1) votre nom d'utilisateur GT et (2) l'identifiant de commit de votre soumission.
par exemple, le contenu de [Link] pour [Link] pourrait ressembler à quelque chose
comme ceci :
[Link]
gpburdell1
81b2f59

Dès que vous soumettez, votre devoir sera noté en compilant votre code et
le faisant face à à la fois vos cas de test et un ensemble de cas de test, rédigés par les instructeurs.
Tous les tests doivent réussir.1Après cela, ce qui devrait prendre quelques minutes au maximum, vous verrez un
rapport avec votre note et quelques commentaires correspondants. Les commentaires doivent être
auto-explicatif (par exemple, "ERREUR : Vous avez 16 tests au lieu de 15.") mais veuillez nous laisser
savoir autrement.
La note que vous verrez sur Gradescope est votre note réelle pour le devoir,
à moins que nous ne trouvions des problèmes avec votre soumission (par exemple, la codification des résultats,
tests identiques, ou similaires).
Vous pouvez soumettre à nouveau autant de fois que vous le souhaitez avant la date limite, donc vous avez un

possibilité de résoudre des problèmes avec vos devoirs si Gradescope trouve un problème avec votre
soumission.

Notes
● Assurez-vous de soumettre uniquement les cas de test dans le modèle et ne pas ajouter de tests supplémentaires. Si vous
si vous vous sentez obligé d'ajouter des tests supplémentaires, n'hésitez pas à le faire dans un fichier de test séparé, que vous
peut être ajouté à votre dépôt mais ne sera pas noté.
● N'utilisez aucune bibliothèque externe autre que JUnit 4 et l'associée
Bibliothèque Hamcrest. Vous pouvez évidemment utiliser toutes les bibliothèques JDK standard,2et tu vraiment
ne devrait pas avoir besoin d'un externe.
● Les seuls fichiers que nous utiliserons pour évaluer vos soumissions sont :
○Assignment3/src/edu/gatech/seclass/[Link]
○Devoir3/test/edu/gatech/seclass/[Link]
○Assignment3/lib/[Link]
○Assignment3/lib/[Link]
N'hésitez pas à commettre des fichiers supplémentaires (par exemple, les fichiers liés au projet IDEA), car cela ne constitue pas un

différence pour votre note.


●Vous ne pouvez modifier aucun des éléments suivants :

○ L'interface fournie (MyStringInterface)

1
Nos cas de test s'assurent que vous avez correctement implémenté la fonctionnalité des méthodes requises. Ils
sont assez simples et ne cherchent pas à exercer des cas particuliers ésotériques.
2
Les bibliothèques Java internes sont celles documentées dans leSpécification de l'API Java Platform Standard Edition.
○ Les cas de test déjà fournis (à l'exception de ceux que vous êtes censé ...
implémenter, évidemment, dont le corps est simplement "fail("Pas encore implémenté")".
○ Le nom de la classe de test, les noms des cas de test et les commentaires de test, sauf
pour remplacer « <Ajouter ici la description du test> » par une description concise de la
objectif du test. (Nous comprenons qu'il peut être conseillé d'utiliser plus
des noms significatifs pour les tests, mais avoir des tests numérotés aide à la notation.)
○ The declaration ofmystringin the test class.
Vous devez utiliser la version 11 de Java pour résoudre le devoir.
● Avant de soumettre, assurez-vous de compiler et d'exécuter vos cas de test en groupe (pas seulement
individuellement) et de vérifier qu'ils passent tous. Bien que Gradescope effectue le même
vérifications, il est beaucoup plus rapide de le faire localement, sur votre machine, à l'avance.
● Vérifiez que l'ID de votre dernier commit contient ce que vous souhaitez et qu'il est poussé vers le dépôt.
en le clonant dans un emplacement séparé ou en le visualisant sur [Link].
Plus précisément, vous pouvez vérifier que vous avez engagé et poussé tous les fichiers dont vous aviez besoin.
en faisant ce qui suit :
○ Clonez une nouvelle copie de votre dépôt personnel dans un autre répertoire
○ Allez dans le répertoire Assignment3 dans ce nouveau clone
○Compilez votre code. Une façon de le faire est d'exécuter, depuis un shell de type Unix :
javac -cp lib/* -d classes src/edu/gatech/seclass/*
test/edu/gatech/seclass/[Link]
(sur certaines plateformes, vous devrez d'abord créer le répertoire « classes »)
○Exécutez vos tests. Encore une fois, depuis un terminal de type Unix, vous pouvez exécuter :
java -cp classes:lib/* [Link]
[Link].MyStringTest3
●You can perform multiple commits as you produce your solution. This is not only fine, but
en fait, très encouragé.
Nous vous encourageons également à utiliser une branche « développement » et à fusionner vos versions stables.
dans la branche « master ». Si vous êtes intéressé, voirce sitepour un exemple d'un possible
modèle de ramification de ce type. (Il en existe beaucoup d'autres.)
● À partir de ce point dans le cours, vous ne devez PAS exécuter les commandes de réinitialisation du dépôt git.
donné dans l'Assignment 2, toute version de force --push, ou toute commande supprimant
branches, tags ou commits antérieurs dans votre dépôt, car ces commandes pourraient causer
vous perdre le travail précédent.

Retour/ demandes de clarifications sur Gradescope


Retour sur Gradescope : Les résultats des cas de test que vous voyez dans Gradescope vous indiqueront si un
le test a réussi ou non. Si le test n'a pas réussi, Gradescope devrait montrer la différence entre
la sortie attendue et réelle. Pour plus de commodité, cette différence peut contenir des ellipses
(... ) pour rendre les retours plus compacts en omettant les parties communes des attentes et des résultats.
sortie, et utilisez des crochets pour mapper les parties correspondantes de la sortie qui diffèrent dans le
expected and actual output.

3
Si vous utilisez un système basé sur Windows, vous devrez peut-être exécuter java -cp "classes;lib/*"
[Link] [Link].
Demandes de clarifications : Si vous avez besoin de clarifications sur un test spécifique ou sur la sortie de Gradescope,
Veuillez poster en privé sur Ed Discussion (nous le rendrons public si approprié) et assurez-vous de
ajoutez, quand cela s'applique :

● un lien vers les résultats de Gradescope,


● une copie intégrale intégrée du ou des tests que vous mentionnez, si c'est le vôtre (c'est-à-dire, pas de captures d'écran ou
identifiants de commit, s'il vous plaît), et

● toute information qui pourrait être pertinente.


L'essentiel est que, pour rendre l'interaction efficace, vous devez rendre vos publications aussi
autonome et aussi facile à vérifier que possible. Plus nous pouvons répondre rapidement aux publications, plus
étudiants que nous pouvons aider.

Utiliser Intellij IDEA


Bien qu'il ne soit pas obligatoire, nous vous recommandons d'utiliser IntelliJ IDEA pour compléter le
tâche, afin que vous puissiez également vous familiariser avec cet IDE (si ce n'est pas déjà fait). Pour ce faire, vous
devrait ouvrir IDEA et faire ce qui suit (notez les étapes initiales et alternatives) :
● Si vous êtes sur l'écran initial d'IntelliJ IDEA (voir l'image ci-dessous), faites ce qui suit :

○ Cliquez sur « Ouvrir »

○ Sélectionnez <dir> comme répertoire à importer


● Sinon, si vous êtes déjà dans une fenêtre de projet, faites ce qui suit
○ Cliquez sur le menu « Fichier » => « Nouveau » => « Projet à partir de sources existantes…

○ Sélectionnez <dir> comme répertoire du projet


Sélectionnez "Créer un projet à partir de sources existantes"

○ Cliquez sur "Suivant" en acceptant les choix par défaut (assurez-vous d'inclure le fourni
bibliothèques et sélectionner Java SDK 11) puis "Terminer" :
● Veuillez noter que l'utilisation d'un IDE devrait également faciliter la création de code de squelette pour le
classe qui implémente l'interface, crée et exécute les cas de test JUnit, et ainsi de suite.

Vous aimerez peut-être aussi