hibernate - junit noob - 两个测试方法之间丢失的类变量值

时间:2010-09-30 13:54:39

标签: java testing junit

...我进行了一次简单的集成测试,所有测试方法都运行良好......但...... 我设置了一个类var

int tempId;

供以下方法使用。 testSaveTag()在成功执行时设置值(现在一切都是自动提交的),testUpdateTag()更新新创建的标记。

@Test
public void testSaveTag() {
Tag tag = new Tag();
tag.setDescription("Test Tag");
tempId = instance.saveTag(tag);
}

@Test
public void testUpdateTag() {
Tag tag  = instance.getTag(tempId );
tag.setDescription("updated tag description!");
instance.updateTag(tag);
}

在2种方法之间,tempID的值会丢失。

所以我在想“做这件事的正确方法是什么”,

...和“为什么价值会丢失?”

提前致谢

2 个答案:

答案 0 :(得分:2)

JUnit测试方法永远不应该依赖于以特定顺序运行,并且应该只共享未被测试更改的类变量。

在testUpdateTag()中,您可能必须创建并保存新标记才能获取ID。或者有没有办法检索您可以更新的标签?

顺便说一句,我希望你在某些时候添加断言......; - )

答案 1 :(得分:1)

对不起我不是junit专家,在大多数单元测试框架工作中,在每个单元测试方法之间都会进行测试系统的设置和拆除。所以你的临时表现可能无法幸免于此过程。