Ich arbeite an einer großen Rails App. Wir haben eine JavaScript-Funktion, die als allgemeines Datenlieferungssystem für Analysen dient. Es gibt allgemeine Analysedaten auf der Grundlage verschiedener Seiteninteraktionsereignisse (Klicks, Seitenaufrufe usw.) an, ist jedoch rahmenunabhängig, da die Daten nicht spezifisch für das sind, was beispielsweise Google Analytics nicht verwenden möchte. Es sind nur allgemeine Daten über die Interaktion.Genaues Testen eines JavaScript Analytics Delivery Systems in Rails
Die Idee ist, dass ein Adaptermodul für Google Analytics (oder jedes andere Drittanbieter-Analysetool) geschrieben werden kann, um die von der allgemeinen Bibliothek generierten Daten aufzunehmen, die Daten an die Bedürfnisse der Drittanbieter anzupassen und zu senden es zu ihrem Endpunkt.
Meine Frage besteht darin, diese Funktion genau zu testen.
Wir verwenden Rspec für den Großteil unserer Tests und Teaspoon für unsere JavaScript-Unit-Tests. Idealerweise würde ich gerne einen Funktionstest schreiben, der unsere App navigiert, auf verschiedene auslösende Elemente klickt und bestätigt, dass die allgemeinen Analysedaten korrekt angekündigt werden.
Ist das überhaupt möglich, oder müssen unsere Teaspoon-Tests ausreichen?
Es gibt keine einfache Antwort auf diese Frage, was bedeutet, dass es nicht wirklich gut zu Stack Overflow passt (das bestimmte Fragen mit einer einzigen "richtigen Antwort" bevorzugt) - als solche kann ich Ihnen keine präzise Antwort geben (und die Frage wird wahrscheinlich geschlossen werden), aber im Allgemeinen: Capybara/Integration Tests tun dies, aber verwenden Sie einen kopflosen Browser. Wenn Sie browserspezifische Tests durchführen möchten, können Sie Selen (oder ähnliches) hinzufügen –