junit4 - Selenium WebDriver -Tests that use other tests -
as example, have:
@test public void login(*code ommitted*){ that tests logging site.
then want other tests start logging in, i've got:
@test public void senduserinvite(){ login(); *other code omitted* } something intuitively telling me bad practise, @ same time if login test need to, why not re-use in way? can clarify this. after while end doing several tests @ start of test because pre-conditions in order carry out particular test.
if you're using testng, can use @beforeclass, @beforesuite, @beforetest, @beforemethod etc. in order launch preconditions on step before @test method
e.g. have 2 tests in xml:
<suite name="suite0" verbose="1" > <test name="name0" > <classes> <class name="test0" /> </classes> </test> <test name="name1"> <classes> <class name="test1"/> </classes> </test> </suite> let's assume test0 , test1 both extend class basetest
then in basetest:
public class basetest { @beforetest public void login() { // smth w/ login } } so, when suite launched, login method invoked. note @beforetest work every test suite, not every method @test, confuses.
upd
if you're using junit, can use @before, , method run before every @test in class. say, same @beforemethod in testng
@before public void pre() { // login here } @test public void testa() { // prints } @test public void testb() { // prints b } @after public void end() { // logout } order of execution:
login
a
logout
login
b
logout
Comments
Post a Comment