...我进行了一次简单的集成测试,所有测试方法都运行良好......但...... 我设置了一个类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的值会丢失。
所以我在想“做这件事的正确方法是什么”,
...和“为什么价值会丢失?”
提前致谢
答案 0 :(得分:2)
JUnit测试方法永远不应该依赖于以特定顺序运行,并且应该只共享未被测试更改的类变量。
在testUpdateTag()中,您可能必须创建并保存新标记才能获取ID。或者有没有办法检索您可以更新的标签?
顺便说一句,我希望你在某些时候添加断言......; - )答案 1 :(得分:1)
对不起我不是junit专家,在大多数单元测试框架工作中,在每个单元测试方法之间都会进行测试系统的设置和拆除。所以你的临时表现可能无法幸免于此过程。