我正在尝试为我正在构建的树数据结构添加单元测试(python 3)。树结构使用集合(无序),我正在努力寻找测试我的树类的某些方法的方法。
鉴于图解树...我有一个方法可以分离一个节点(比如#2)然后选择其中一个孩子(3或4)来取代它而不是将它们两个都存放到节点1.(这对于说#2是根的情况很有用,我们仍然希望当2被丢弃时3和4相关。)
1----------+ 2 1----------+
| | | |
+---2---+ | Detaching Node "2" 3---+ |
| | 11 --> /|\ | 11
3 4 /| \ 5 6 7 | /| \
/|\ /|\ 12 13 14 4 12 13 14
5 6 7 8 9 10 /|\
8 9 10
集合是无序的,我选择子节点(3和4中的方式)的方法是检查节点2是否有子节点,然后从子集中弹出一个子节点并将其作为一个子节点。因为集合是无序的,所以当我把孩子关掉时,我(似乎)在我的测试用例中得到(看似)随机结果。
我的策略应该是如何测试这样的方法(我已经读过使用随机模块时的测试困难,但是我还读过那些集合确实有某种可预测的顺序)?我应该只测试围绕这个问题吗?我应该试着找出该套装的顺序"弹出"在?
答案 0 :(得分:1)
测试方法是否完成它应该做的事情。操作后,是否有正确的节点被其中一个孩子替换?如果是这样,太好了!如果没有,请报告失败。
您不需要断言它已被任何特定的孩子取代。