Je suis un nouvel ingénieur Rails. J'ai appris RSpec en testant Rails, donc je l'ai résumé. Nous sérialisons un ingénieur qui deviendra un service dans 100 jours. Aujourd'hui est le 7ème jour Au fait, pour une comparaison entre Minitest et RSpec ici
Un framework qui utilise un langage spécifique au domaine (DSL) pour tester les classes et les méthodes créées dans Ruby et Ruby on Rails. En d'autres termes, il s'agit d'un langage de programmation de test uniquement.
FactoryBot Un bijou qui prend en charge la création de données de test FactoryBot facilite la préparation des données de test Il existe également un mécanisme appelé Fixture dans la norme Rails, Il est plus facile de saisir l'état des données et la relation entre les données qu'ici. Donc, cette fois, je l'utilise également.
Capybara Framework de test E2E (End-to-End) pour les applications Web. Il est utilisé en combinaison avec RSpec, etc. Vous pouvez simuler le fonctionnement du navigateur d'une application Web.
La forme de base de la description RSpec est la suivante.
describe [Cible pour décrire la spécification(Cible de test)], type[type de spécification] do
context[Une situation] do
before do
[Préparation préalable]
end
it[Contenu du cahier des charges (aperçu des attentes)] do
[Comportement attendu]
end
end
end
C'est difficile à comprendre même si vous regardez ceci, alors je vais le diviser. describe
describe [Cible pour décrire la spécification(Cible de test)], type[type de spécification] do
end
Dans décrire, écrivez ce pour quoi vous essayez de décrire la spécification. Par exemple, si vous souhaitez écrire une spécification pour la fonction de test système et d'affichage de profil
describe 'Fonction d'affichage du profil', type: :system do
Voilà comment cela a été dit.
context Ceci permet de classer le contenu du test en fonction de la situation et de la variation de l'état. Par exemple, si l'entrée de l'utilisateur est correcte ou incorrecte, si l'utilisateur est connecté, etc. Je vais le décrire en contexte.
before avant d'écrire le code pour implémenter les prérequis pour toute la zone Voici les conditions préalables à l'affichage d'un profil. Dans ce cas, il est indispensable que vous soyez connecté
context 'Lorsque l'utilisateur est connecté' do
before do
visit login_path
fill_in 'adresse mail', with: '[email protected]'
fill_in 'mot de passe', with: 'password'
click_button 'S'identifier'
end
end
it Le dernier décrit le comportement attendu et le texte dans le code à l'intérieur du bloc expect(page).to have_content 'hoge' La description ci-dessus a le contenu "hoge" sur l'écran, non? ?? C'est le contenu. Puisqu'il est censé avoir du contenu, c'est jusque-là s'il reste en anglais.
#Sur l'écran de profil'Profil de l'utilisateur'Il y a du contenu??
it 'Le profil de l'utilisateur s'affiche' do
expect(page).to have_content 'Profil de l'utilisateur'
end
describe 'Fonction d'affichage du profil', type: :system do
context 'Lorsque l'utilisateur est connecté' do
before do
visit login_path
fill_in 'adresse mail', with: '[email protected]'
fill_in 'mot de passe', with: 'password'
click_button 'S'identifier'
end
it 'Le profil de l'utilisateur s'affiche' do
expect(page).to have_content 'Profil de l'utilisateur'
end
end
end
La forme de base de RSpec est établie de cette manière. Il est difficile de tout comprendre soudainement, mais quand je le divise, cela semble tout à fait vrai.
Cette fois, je l'ai résumé en termes de comment voir la forme de base. Cela semble en fait plus imbriqué et compliqué, Tout d'abord, j'aimerais maintenir le formulaire de base et approfondir ma compréhension de RSpec.
C'est tout pour aujourd'hui ** 93 jours pour devenir un ingénieur à part entière **