\chapter{Tests et validations}
\label{ch:tests}

Pour valider le bon fonctionnement de l'application et mettre en place l'intégration continue, différents modules sont utiliser pour tester les objets et méthodes ainsi que pour valider la syntaxe et l'indentation du code. 

\section{Backend}

\subsection{RSpec}

RSpec\cite{rspec} est une solution qui propose un ensemble d'outils pour tester les applications Ruby et notamment celles créées avec Rails. Il va permettre de créer des objets et de vérifier leur validité ainsi que de tester le bon fonctionnement des méthodes. Cet outil est utilisé dans le backend mais également pour valider les deux modules d'accès aux équipements (paltogem et fortigem). Les fichiers qui concernent les tests RSpec se trouvent dans le dossier \Colorbox{light-gray}{\lstinline|spec/|} à la racine du projet.

\subsection{Rubocop}

RuboCop\cite{rubocop} est un analyseur de code Ruby et de syntaxe basé sur le \emph{Community Ruby Style Guide}\cite{rubystyleguide}. Il permet de s'assurer que la syntaxe est utilisée de façon uniforme dans le projet, de remonter l'utilisation de méthodes dépréciées, de vérifier les indentations. Tous les tests effectués par le programme peuvent être personnalisés au besoin et sont tous documentés avec des exemples dans la documentation\cite{rubocopdoc}.

\subsection{Brakeman}

\section{Frontend}

\subsection{QUnit}

\subsection{ESLint}