DENEUVILLE Ludovic (sur la base des cours de Rémi Pépin)
ludovic.deneuville@ensai.fr
Source : commitstrip Lien
Quand Jack et Charles travaillent en même temps
L'équipe décide de faire un planning pour savoir qui travaille et d'envoyer le code par mail
Sauvegarde quotidienne du projet
Initialiser un dépôt
git init
Cloner un dépôt
git clone https://github.com/ludo2ne/R-tuto.git
git clone git@github.com:ludo2ne/R-tuto.git
Mettre en transit un fichier
git add fileName
Mettre en transit tout les fichiers
git add -A
git add .
Mettre en transit tous les fichier depuis un dossier
git add folder/
Faire un commit
git commit -m "message de commit"
Pousser mes modifications
git push
Récupérer les modifications de la remote et les mettre dans mon dépôt local + workspace
git pull
Récupérer les modifications de la remote et les mettre dans mon dépôt local
git fetch
Fusionner les modifications du dépôt local avec la workspace
git fetch origin/master
Voir les fichiers nouveaux, staged etc ...
git status
Voir les fichiers nouveaux, staged etc ... avec un meilleur niveau de détail
git status -u
Voir l'historique "joliment"
git log --all --decorate --oneline --graph
git log --pretty=format:'%C(yellow)%h %Cred%ad %Cblue%an%Cgreen%d %Creset%s' --date=relative
Source : lien
Source : commitstrip Lien
Source : commitstrip Lien
“En informatique, un test désigne une procédure de vérification partielle d'un système. Son objectif principal est d'identifier un nombre maximum de comportements problématiques du logiciel. Il permet ainsi, dès lors que les problèmes identifiés seront corrigés, d'en augmenter la qualité.
D'une manière plus générale, le test désigne toutes les activités qui consistent à rechercher des informations quant à la qualité du système afin de permettre la prise de décisions.
Un test ressemble à une expérience scientifique. Il examine une hypothèse exprimée en fonction de trois éléments : les données en entrée, l'objet à tester et les observations attendues. Cet examen est effectué sous conditions contrôlées pour pouvoir tirer des conclusions et, dans l'idéal, être reproduit ”
Plus on teste tôt et plus les tests sont efficaces et peu coûteux !
Pratique qui consiste à écrire les tests AVANT de coder
Par Xarawn — Travail
personnel
,
CC
BY-SA 4.0, Lien
def test_ma_fonction():
# GIVEN -> Inputs
expected_result =
mes_parametres =
# WHEN -> Le traitement à tester
actual_result = ma_fonction(mes_parametres)
# THEN
#Des petits traitements supplémentaires comme nettoyer la base
self.assertEqual(actual_result, expected_result)
def test_compute_damage(self):
# GIVEN
power = 100
basic_hit = FixedDamageAttack(power=power)
pikachu = AttackerPokemon()
venusaur = AttackerPokemon()
# WHEN
damage = basic_hit.compute_damage(pikachu, venusaur)
# THEN
self.assertEqual(power, damage)
def test_choose_attack_1(self):
# GIVEN
tonnerre = SpecialFormulaAttack(power=30, description="{pokemon} fait tomber la foudre sur son adversaire", name="Tonnerre")
vive_attaque = PhysicalFormulaAttack(power=35, description="{pokemon} fonce sur l'ennemi si rapidement qu'on parvient à peine à le discerner.", name="Vive attaque")
pikachu = AttackerPokemon(name="pikachu", common_attacks=[tonnerre,vive_attaque])
battle_service = BattleService()
random.seed(1) # no crit, choose tonnerre
# WHEN
choosen_attack = battle_service.choose_attack(pikachu)
# THEN
self.assertEqual(tonnerre, choosen_attack)
@patch.multiple(AbstractPokemon, __abstractmethods__=set())
def test_get_order_draw(self):
# GIVEN
speed_pikachu = 50
speed_charizard = 22
pikachu = AbstractPokemon(stat_current=Statistic(speed=speed_pikachu))
charizard = AbstractPokemon(stat_current=Statistic(speed=speed_charizard))
battle_service = BattleService()
random.seed(1) # les deux nombres générés seront 8 et 36 (draw), 48 and 4
# WHEN
first, second = battle_service.get_order(pikachu, charizard)
# THEN
self.assertEqual(pikachu, first)
self.assertEqual(charizard, second)
Source : commitstrip Lien