Developer Desk
Developer Desk

Reputation: 2344

Use variable in JUnit test

I want to first save VO and get its Id (Primary Key) and then perform get and delete operation based on Id.

My code

@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class TransactionDAOImplTest {

    TransactionDAOImpl daoImpl = new TransactionDAOImpl();

    public long Id; 
    String transactionId = "1468597863";
    String uniqueKey = "124587878";

//  @Ignore
    @Test
    public void test1_savetransaction() {
        transactionVO transactionVO = new TransactionVO();
        transactionVO.setTransactionId(transactionId);
        transactionVO.setUniqueKey(uniqueKey);
        transactionVO.setCreationDate(Calendar.getInstance());
        transactionVO vo = daoImpl.saveTransaction(transactionVO);
        Id = vo.getId(); // Here Id is setting to some value like 775
        assertEquals(transactionId, vo.getTransactionId());
    }

//  @Ignore
    @Test
    public void test2_findTransactionEvent() {
        transactionVO vo = daoImpl.findTransaction(Id); // Here Id is reseting to 0 it should be 775, so not able to get
        assertEquals(transactionId, vo.getTransactionId());
    }

//  @Ignore
    @Test
    public void test3_deletetransaction() {
        int deletedCount = daoImpl.deleteTransactionById(Id); // Here also Id reseting to 0 it should be 775, so not able to delete
        assertTrue(deletedCount > 0);
    }

But when I set Id and use it in other methods it reset to 0.

How to use variable(e.g Id) in all JUnit Test methods?

Upvotes: 2

Views: 83

Answers (2)

ygbgames
ygbgames

Reputation: 211

Make id as static so there will be only one copy of it per jvm.

static public long Id;

Upvotes: 2

Ori Marko
Ori Marko

Reputation: 58772

Add setting Id to BeforeClass so it will be available in all methods (need to be static)

public static long Id;
@BeforeClass public static void onlyOnce() {
    transactionVO transactionVO = new TransactionVO();
    transactionVO.setTransactionId(transactionId);
    transactionVO.setUniqueKey(uniqueKey);
    transactionVO.setCreationDate(Calendar.getInstance());
    transactionVO vo = daoImpl.saveTransaction(transactionVO);
    Id = vo.getId(); // Here Id is setting to some value like 775
}

Upvotes: 3

Related Questions