2

私は単体テスト全体に不慣れで、次の関数の単体テストを作成する方法を知りたいと思っています。

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

理想的には、上記の関数で何をテストする必要がありますか?

4

1 に答える 1

3

この特定の関数をテストしてもあまり意味がありません。これはあまり役に立ちません。ただし、例として使用しているため、原則として、サンプルデータを使用してシステムをセットアップし、関数が期待どおりに返されることを確認します。したがって、この場合、テストで 2 つの Poll オブジェクトを作成し、関数が値 2 を返すことをアサートできます。

また、エッジ ケースを確認することもできます。このケースで考えられる唯一のケースは、ポーリングがまったくないときにクラッシュしないということです。したがって、2 つの Poll を挿入する前に、関数を呼び出して、0 を返すことをテストできます。次に、2 つのインスタンスを追加し、戻り値 2 を確認します。

ただし、通常、Django 自身の機能をテストすることは避けるべきです。これは、Django 自身の単体テストで十分にカバーされています。このように、関数が組み込みメソッドを呼び出す以外に何もしない場合、count()関数が 2 を返すことを確認しても意味がありません。

于 2013-01-03T22:29:25.930 に答える