Download T2 : Automated Testing Tool for Java User Manual
Transcript
46
CHAPTER 8. USAGE AND OPTIONS
8.3
Using T2 from Java (as API)
So far in this chapter we explained of T2 from console. But we can also use T2 as an API. That
is, we want to call T2 from a Java class. This includes calling T2 from your Junit test class. See
also the examples in Chapter 7.
The use is completely analogous with the console use. The only thing that is different is that
you now need an explicit API to call. There two; both are method of the class Sequenic.T2.Main:
1. static public void main(String parameters)
2. static public void Junit(String parameters)
Both do essentially the same as calling Sequenic.T2.Main from a console. Use the Junit API to
call T2 from inside a Junit test class.
Both APIs above expect a single string. This string is just the arguments that you would
otherwise pass to T2 when you use it from console. The sytax of those arguments is exactly the
same. So, e.g. if you do this from console:
java -ea -cp .;TT.jar Sequenic.T2.Main MyClass --violmax=10
Then this is how you call the API Junit from your Junit test class:
public class myJUnitTest {
...
@Test
void test1(){
...
Sequenic.T2.Main.Junit(MyClass.class.getName() + " --violmax=10") ;
}
}
Also keep in mind that T2 requires the JVM flag -ea to be turned-on. So when you run Junit
to execute the above class, you also need to turn on the -ea flag.
8.4
Using the Combinatoric Testing Tool
The combinatoric testing tool can generate all possible the test sequences up to a certain length
—see also Section 6.4. The tool can be called through Main; the general use is (from console):
java -ea -cp TT-jar Sequenic.T2.Main -C target-class option*
This will apply combinatoric-based testing on the specified target class.
The syntax for using it as APIs is basically analogous; see Section Section 8.3.
The target-class is the name of the target class. The name has to be in Java fully qualified
format. This convention is the same as with the default testing tool. Available options are the
same as with the default tool (Section 8.1), except the following.
The engine will try to generate all possible sequences of length as specified by the --lenexec
option (or its default if it is not specified). It will however stop generating if the number of steps
has reached tt –nmax (or its default if it is not specified).
As explained in Section 8.3, the arguments passed to the steps in the sequences are still
generated randomly.
The engine will also duplicate each sequence --dup number of times (or its default, if it is not
specified). For each duplicate, the arguments are generated randomly.