J'écris des tests unitaires pour l'un de mes modèles de rails. C'est un grand modèle et dans certains cas, j'ai des dizaines d'affirmations pour de nombreuses méthodes. Je préfère utiliser test/unité simple avec la syntaxe de activesupport de rails, donc j'ai un fichier comme ceci:Comment dois-je séparer les grands tests unitaires en ruby?
require 'test_helper'
class ItemTest < ActiveSupport::TestCase
test "for_sale? should be true if cond 1..."
test "for_sale? should be true if cond 2..."
test "for_sale? should be true if cond 3..."
test "for_sale? should be true if cond 4..."
test "for_sale? should be false if cond 1..."
test "for_sale? should be false if cond 2..."
test "for_sale? should be false if cond 3..."
test "for_sale? should be false if cond 4..."
end
et ainsi de suite pour chacune des méthodes. Le problème est que le test devient de plus en plus compliqué car je ne peux plus compter sur setup() car le contexte de chaque groupe de tests est si différent pour chaque méthode. De plus, il est difficile de tester la méthode sur laquelle je travaille sans exécuter tous les tests.
Comment les autres gèrent-ils les grands cas de test comme celui-ci? Y a-t-il une meilleure pratique?
Un autre modèle mental utile est d'utiliser 'contexte « quand une autre variable ... 'Dans l'exemple mentionné précédemment de la carte de crédit est utile de penser que:.' Contexte « lorsque la carte de crédit est volée » fais ... – Chubas