如何为返回巨大稀疏矩阵的函数编写python unittest

时间:2017-10-12 00:11:30

标签: python unit-testing

所以,我有一个构造一个巨大的稀疏矩阵的函数。函数的结构如下:

def return_matrix():

    for i in range(i_res):
        for j in range(j_res):
            if i == 0 and j == 0:
                # code that adds value to sparse matrix
            elif (i == 1 and j==1) or (i==i_res-1 and j==j_res-1):
                # code that adds value to sparse matrix
            #and so on

所以这个函数基本上都是elif语句的长链。

在这种情况下编写单元测试的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

尝试测试代码正在执行的 ,而不是 它正在做什么。您的测试可能不需要担心单个if语句及其在代码中的顺序。相反,请考虑矩阵的哪些特征是正确的。

我对您的要求一无所知,所以我只是编写一些可能对测试有益的事情:

  • 每行中的值从左到右单调递增
  • 奇数列具有奇数值
  • 行内没有重复值

我可以想象为这些中的每一个编写一个测试用例,它将迭代矩阵中的项目并进行检查。

显然,您必须考虑自己的要求,以了解可以在自动化测试中检查的结果的质量。你怎么知道结果是错的?