如何在二叉搜索树中编写此函数的测试用例?
void insert(String key){
root=insertRec(root,key);
}
答案 0 :(得分:1)
你的方法做了些什么。它显然通过插入rec(ord?)并以某种方式重新评估root是什么来改变对象的状态。因此,为了测试它,你应该能够以某种方式确定新的状态,例如......
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 );
}
另一方面,如果您无法从外部检查状态,那么您将遇到问题。但不知何故,你的班级必须与外界沟通,不是吗?如果你真的认为你不能检查新的状态,那么你将不得不提供更多这个类的代码,因为这个答案当然是非常一般的(这意味着“猜测”)。