I have the following problem to be solved, could you help me?
I have two methods in a class. The first generates a document (calling another class) and stores it in a string.
The second one I want to save this document number for use in other methods and in other classes, in a way that the document is the same generated initially. That is, do not generate a different document! I’m not getting … = //
First Methods in one class (generates document, calling a method of another class):
public class oneClass { private String cpf; private String document() { if (this.cpf == null) { this.cpf = incluiDocumento.cpf(false); } else { } return this.cpf; } public void one() { System.out.println(document()); System.out.println(document()); System.out.println(document()); } public void two() { System.out.println(document()); } }
Second class:
@Test public void testDocuments() { new oneClass().one(); new oneClass().two(); }
Conclusion: I can generate my document and store it in a string. However, in the next methods and classes, I can never use the first document ever generated. It will always generate new documents.
How can I generate a document and store it for use in tests and validate it?
Tool: Selenium Webdriver, Java.
Thanks in advance!!!
Advertisement
Answer
In this case you might use this approach:
public class OneClass{ private String cpf; //... public String document() { if(this.cpf==null){ this.cpf = document.cpf(false); } return this.cpf; } //... method one() and two() }
The document is created only once and saved in a class variable. Any call after that will return the saved document.
So the Second Method will always get the first document generated.
Edit:
And test it like in the following:
@Test public void testDocuments() { OneClass oneClass = new OneClass(); oneClass.one(); oneClass.two(); }
I changed the name of your class from oneClass
to OneClass
because in Java class names start with capital letter.