代码之家  ›  专栏  ›  技术社区  ›  vector

hibernate-junitnoob-class变量值在两个测试方法之间丢失

  •  1
  • vector  · 技术社区  · 16 年前

    ... 我做了一个简单的集成测试,所有的测试方法运行良好。。。但是。。。 var I设置类

    int tempId;
    

    @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);
    }
    

    tempID的值在这两个方法之间丢失。

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

    提前谢谢

    2 回复  |  直到 15 年前
        1
  •  2
  •   Rodney Gitzel    15 年前

    JUnit测试方法永远不应该依赖于以某种顺序运行,而应该只共享那些不被测试更改的类变量。

    在testUpdateTag()中,您可能需要创建并保存一个新的标记来获取一个ID。或者,有没有一种方法可以检索到一个可以更新的标记?

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

        2
  •  1
  •   Aaron Fischer    16 年前

    抱歉,我不是junit的专家,在大多数单元测试框架中,每个单元测试方法之间都有测试系统的设置和关闭。所以你的tempId可能无法在这个过程中存活下来。