Class UIUnit4Test

java.lang.Object
com.vaadin.testbench.unit.UIUnit4Test
All Implemented Interfaces:
TesterWrappers
Direct Known Subclasses:
SpringUIUnit4Test

public abstract class UIUnit4Test extends Object implements TesterWrappers
Base JUnit 4 class for UI unit tests. The class automatically scans classpath for routes and error views. Subclasses should typically restrict classpath scanning to a specific packages for faster bootstrap, by using ViewPackages annotation. If the annotation is not present a full classpath scan is performed
 {@code
 @ViewPackages(classes = {CartView.class, CheckoutView.class})
 public class CartViewTest extends UIUnit4Test {
 }

 @ViewPackages(packages = {"com.example.shop.cart", "com.example.security"})
 public class CartViewTest extends UIUnit4Test {
 }

 @ViewPackages(
    classes = {CartView.class, CheckoutView.class},
    packages = {"com.example.security"}
 )
 public class CartViewTest extends UIUnit4Test {
 }
 </pre>


 Set up of Vaadin environment is performed before each test by {@link
 #initVaadinEnvironment()} method, and will be executed before {@code @Before}
 methods defined in subclasses. At the same way, cleanup tasks operated by
 {@link #cleanVaadinEnvironment()} are executed after each test, and after all
 {@code @After} annotated methods in subclasses.

 Custom Flow service implementations supported by {@link
 com.vaadin.flow.di.Lookup} SPI can be provided overriding {@link
 #initVaadinEnvironment()} and passing to super implementation the service
 classes that should be initialized during setup.

 <pre>
 {@code
 &#64;Override
 public void initVaadinEnvironment() {
     super.initVaadinEnvironment(CustomInstantiatorFactory.class);
 }
 }
 </pre>
 <p/>
 To get a graphical ascii representation of the UI tree on failure override
 the {@link #printTree()} method to return true.
  • Field Details

    • treeOnFailure

      public org.junit.rules.TestRule treeOnFailure
    • testers

      protected static final Map<Class<?>,Class<? extends ComponentTester>> testers
    • scanned

      protected static final Set<String> scanned
  • Constructor Details

    • UIUnit4Test

      public UIUnit4Test()
  • Method Details

    • printTree

      public boolean printTree()
      Override to return true to get component tree output into log on test failure.
      Returns:
      true to print component tree
    • initVaadinEnvironment

      public void initVaadinEnvironment()
    • testingEngine

      protected final String testingEngine()
      Gets the name of the Test Engine that is able to run the base class implementation. The Test Engine name is reported in the exception thrown when the Vaadin environment is not set up correctly.
      Returns:
      name of the Test Engine.
    • cleanVaadinEnvironment

      protected void cleanVaadinEnvironment()
    • lookupServices

      protected Set<Class<?>> lookupServices()
      Gets the services implementations to be used to initialized Vaadin Lookup. Default implementation returns an empty Set. Override this method to provide custom Vaadin services, such as InstantiatorFactory, ResourceProvider, etc.
      Returns:
      set of services implementation classes, never null.
    • fireShortcut

      public void fireShortcut(Key key, KeyModifier... modifiers)
      Simulates a keyboard shortcut performed on the browser.
      Parameters:
      key - Primary key of the shortcut. This must not be a KeyModifier.
      modifiers - Key modifiers. Can be empty.
    • getCurrentView

      public HasElement getCurrentView()
      Get the current view instance that is shown on the ui.
      Returns:
      current view
    • test

      public <T extends ComponentTester<Y>, Y extends Component> T test(Y component)
      Wrap component with ComponentTester best matching component type.
      Type Parameters:
      T - tester type
      Y - component type
      Parameters:
      component - component to get test wrapper for
      Returns:
      component in wrapper with test helpers
    • test

      public <T extends ComponentTester<Y>, Y extends Component> T test(Class<T> tester, Y component)
      Wrap component in given ComponentTester.
      Type Parameters:
      T - tester type
      Y - component type
      Parameters:
      tester - test wrapper to use
      component - component to wrap
      Returns:
      initialized test wrapper for component
    • $

      public <T extends Component> ComponentQuery<T> $(Class<T> componentType)
      Gets a query object for finding a component inside the UI
      Type Parameters:
      T - the type of the component(s) to search for
      Parameters:
      componentType - the type of the component(s) to search for
      Returns:
      a query object for finding components
    • $

      public <T extends Component> ComponentQuery<T> $(Class<T> componentType, Component fromThis)
      Gets a query object for finding a component nested inside the given component.
      Type Parameters:
      T - the type of the component(s) to search for
      Parameters:
      componentType - the type of the component(s) to search for
      fromThis - component used as starting element for search.
      Returns:
      a query object for finding components
    • $view

      public <T extends Component> ComponentQuery<T> $view(Class<T> componentType)
      Gets a query object for finding a component inside the current view
      Type Parameters:
      T - the type of the component(s) to search for
      Parameters:
      componentType - the type of the component(s) to search for
      Returns:
      a query object for finding components
    • roundTrip

      protected static void roundTrip()
      Simulates a server round-trip, flushing pending component changes.