0

This is how one of my test classes is structured:

public class DocumentQueryApiTests {

  @BeforeMethod(alwaysRun = true)
  public void tryingThisDamnThing() {
    CoreHelper.editDocumentHeader();
  }

  @BeforeClass(alwaysRun = true)
  public void createApi() {
    CoreHelper.createApis();
  }

  @Description(...)
  @Severity(....)
  @Test()
  public void shouldSee200AfterGetDocumentType() {
  //cut because not relevant
  }

  @Description(...)
  @Severity(....)
  @Test()
  public void shouldSee404...() {
  //as above
  }

  @Description(...)
  @Severity(....)
  @Test()
  public void shouldSee200....() {
  //more code
  }
  //80 more tests
}

This is editHeader():

public static void editDocumentHeader() {
    documentTypeQueryApi.reqSpec(new Consumer<RequestSpecBuilder>() {
      public void accept(RequestSpecBuilder requestSpecBuilder) {
        requestSpecBuilder.addHeader("company_id", DPCommon.provideCompany().toString());
      }
    });
  }

When I run the class in IntelliJ, it'll run all methods as a single test. @BeforeMethod (and @BeforeTest, and any other @Before tag) will be executed exactly once. Only one test will have company_id added to it's header.

Petersaber
  • 851
  • 1
  • 12
  • 29

0 Answers0