2012-06-29 12 views
5

Ich versuche, meinen Kopf rund um Arquillian zu wickeln und verstehe nicht grundlegend den Unterschied zwischen in-container Modus vs. as-client Modus.Arquillian Run Modes

Mein Verständnis ist, dass mit Arquillian/ShrinkWrap:

  • Sie ein Archiv erstellen, die nur die Komponenten enthalten, die Sie mit
  • Sie dieses Archiv im Speicher zu integrieren und zu testen wollen streamen zu einem eigentlichen Behälter (Bereitstellung von it)
  • Sie führen das Archiv als Test im Inneren des Behälters
  • Sie machen eine Aussage über das, was als Ergebnis dieses Tests passieren wird

Also, aus meiner Perspektive, fühlt sich alles nur so an, als wäre es immer in-container, da die Tests immer in einem Container ausgeführt werden.

Bitte helfen Sie mir zu verstehen, die Unterschiede zwischen diesen beiden Modi und für welche Arten von Integrationstests beide Modi geeignet sind. Bonuspunkte für die Bereitstellung eines konkreten Codebeispiels (und nicht die vagen direkt aus dem Referenzhandbuch!), Die erklären, warum/wie Sie die Tests in beiden Modi ausführen. Danke im Voraus!

Antwort

1
  • in-Behälter: Verwendung für weiße Box, Integrationstests
  • as-Client: Verwenden Blackbox, Funktionsprüfung

dh für UI/Funktionsprüfung (“ Als "die Rolle eines" Kunden "mit der App in der Produktion verwenden Sie as-client Modus mit @RunAsClient. Für echte Integrationstests (Testen von Abhängigkeiten zwischen Klassen, in denen Sie internes "White Box" -Verhalten über die App selbst benötigen) unter Verwendung des Modus in-container.

In beiden Fällen stellen ShrinkWrap und Arquillian Ihr In-Memory-Archiv (JAR/WAR/EAR) direkt in den konfigurierten Container (über ein JBoss-homegrown streaming-Protokoll) bereit, wenn Tests jedoch in verschiedenen Modi ausgeführt werden an den Container abhängig vom Testmodus.

+0

Ich verstehe den Unterschied zwischen Whitebox und Blackbox-Tests, aber ich verstehe es auch nicht ganz mit dem Client-Modus testen. Bedeutet dies, dass das im Archiv komprimierte Archiv im Client-Modus nicht in derselben zu testenden Anwendung bereitgestellt wird, sondern in einer separaten App bereitgestellt wird, sodass eine Konfiguration vom Typ "Client/Server" zur Verfügung steht? Wenn im Client-Modus das Shrinkwrap-Archiv auch in der zu testenden App eingesetzt wird, sehe ich immer noch nicht den Unterschied zwischen den beiden Modi. :( – dragonsfire

Verwandte Themen