2

我是整体单元测试的新手,想知道如何为以下功能编写单元测试。

from poll.models import Poll
def total():
    all_polls = Poll.objects.all()
    return all_polls.count()

理想情况下,我应该在上面的函数中测试什么?

4

1 回答 1

3

测试这个特定功能没有多大意义,因为它没有做任何非常有用的事情。但是,由于您使用它作为示例,因此原则是使用一些示例数据设置系统,然后检查该函数是否返回您所期望的。因此,在这种情况下,您的测试可以创建两个 Poll 对象,然后断言该函数返回值 2。

您可能还想检查边缘情况:在这种情况下,我唯一能想到的是,当根本没有投票时它不会崩溃。因此,在插入两个轮询之前,您可以调用该函数并测试它是否返回 0;然后,添加两个实例并检查返回值 2。

不过,一般来说,您应该避免测试 Django 自己的功能:Django 自己的单元测试很好地涵盖了这一点。在这种情况下,您的函数除了调用内置方法之外什么都不做,检查count()函数是否返回两个确实没有意义,因为我们已经知道它会返回。

于 2013-01-03T22:29:25.930 回答