![](/img/trans.png)
[英]How can I use a variable for the “expected” attribute of junit @Test?
[英]Use variable in JUnit test
我想先保存VO并获取其ID(主键),然后基于ID执行获取和删除操作。
我的密码
@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);
}
但是,当我设置Id并将其用于其他方法时,它会重置为0。
如何在所有JUnit测试方法中使用变量(例如,Id)?
将设置ID添加到BeforeClass,以便它将在所有方法中可用(必须是静态的)
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
}
将id设置为静态,因此每个jvm只能有一个副本。
static public long Id;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.