编程语言
首页 > 编程语言> > python – 为返回对象层次结构的函数编写单元测试

python – 为返回对象层次结构的函数编写单元测试

作者:互联网

我有一个函数,在输入向量列表上执行层次聚类.返回值是对象层次结构的根元素,其中每个对象表示一个集群.我想测试以下内容:

>每个群集是否包含正确的元素(也可能包含其他属性)?
>每个群集是否指向正确的孩子?
>每个群集是否指向正确的父级?

我这里有两个问题.首先,如何以可读格式指定预期输出.其次,我如何编写一个test-assertion接受我提供的预期数据的同构变体?假设预期层次结构中的一个集群有两个子节点A和B.现在假设集群由具有属性child1和child2的对象表示.我不关心child1是对应于集群A还是B,只是它对应于其中一个,而child2对应于另一个.解决方案应该有点笼统,因为我会用不同的输入数据编写几个测试.

实际上我的主要问题是找到一种以可读和易懂的方式指定预期输出的方法.有什么建议?

解决方法:

如果存在同构结果,则应该有一个可以测试逻辑等效的谓词.这可能对您的代码单元有利,也有助于实现单元测试.

这是Manoj Govindan没有字符串中间体的答案的核心,因为你对字符串中间体(推测)不感兴趣,然后将它们添加到测试机制中将是不必要的错误来源.

至于可读性问题,您需要显示您认为不可读的内容,以便给出正确的答案.也许等价谓词可以避免这种情况.

标签:python,unit-testing,readability
来源: https://codeday.me/bug/20190705/1383877.html