J'ai les objets et les relations suivantes,Empêcher le couplage d'état?
Lecture >- Tests
Test >- Questions
règles d'affaires
When the lecture is started, a test can be given
If a test is being given, questions can be asked
inférents
Therefore questions shouldn't be asked if the lecture hasn't been started.
Question Modèle
class Question
belongs_to :test
belongs_to :lecture, :through => :test
def ask_question
raise "Test not started!" unless test.started?
raise "Lecture not started!" unless lecture.started?
end
end
Il est donc clair que l'état du modèle de question est maintenant couplé à l'état de test et de classe.
Lors de la création de tests unitaires, pour tester cela, j'ai besoin de mettre en place tout cet état, ce qui devient assez compliqué, d'autant plus que les cas d'affaires deviennent de plus en plus compliqués.
Comment puis-je éviter cela?