java中针对void方法的Junit测试

java中针对void方法的Junit测试,junit,Junit,如何在二叉搜索树中编写此函数的测试用例 void insert(String key){ root=insertRec(root,key); } 你的方法有作用。它通过插入rec(ord?)并以某种方式重新评估根是什么,显然改变了对象的状态。所以,为了测试它,您应该能够以某种方式确定新的状态,例如 public void insert_should_create_new_record_and_set_root() { assertThat( myObject.getRec(

如何在二叉搜索树中编写此函数的测试用例

void insert(String key){

    root=insertRec(root,key);
}

你的方法有作用。它通过插入rec(ord?)并以某种方式重新评估根是什么,显然改变了对象的状态。所以,为了测试它,您应该能够以某种方式确定新的状态,例如

public void insert_should_create_new_record_and_set_root() {
     assertThat( myObject.getRec( originalRoot) ).isNull();

     Object originalRoot = myObject.getRoot();
     myObject.insert("xyz");

     assertThat( myObject.getRec( originalRoot) ).isEqualTo( "xyz"); // using AssertJ style here
     assertThat( myObject.getRoot().value() ).isNotEqualTo( originalRoot );      
}
另一方面,如果无法从外部检查状态,则会出现问题。但不知怎的,你的班级必须与外界沟通,不是吗?如果您真的认为无法检查新状态,那么您必须提供更多此类代码,因为这个答案当然非常笼统(这里是“猜测”的意思)。

可能重复