Django测试用例无法运行方法

bro*_*kie 4 python testing django

我刚刚开始使用Django,所以这可能是一些愚蠢的事情,但我甚至不确定在这一点上google是什么.

我有一个看起来像这样的方法:

def get_user(self,user):
    return Utilities.get_userprofile(user)
Run Code Online (Sandbox Code Playgroud)

该方法如下所示:

@staticmethod
def get_userprofile(user):
    return UserProfile.objects.filter(user_auth__username=user)[0]
Run Code Online (Sandbox Code Playgroud)

当我在视图中包含它时,一切都很好.当我编写一个测试用例来使用Utility类中的任何方法时,我得到None:

两个测试用例:

def test_stack_overflow(self):
    a = ObjName()
    print(a.get_user('admin'))

def test_Utility(self):
    print(Utilities.get_user('admin'))
Run Code Online (Sandbox Code Playgroud)

结果:

Creating test database for alias 'default'...
None
..None
.
----------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我为什么这在视图中工作,但不在测试用例内部工作并且不会生成任何错误消息?

谢谢

Jag*_*u T 9

验证您的单元测试是否符合以下条件,

  1. TestClass 必须用文件名写 test*.py
  2. TestClass必须已经从unittest.TestCase中继承
  3. TestClass应该有一个setUp函数来创建对象(通常以这种方式完成,但对象创建也可以在测试函数中发生)在数据库中
  4. TestClass函数应该从test 开始,test以便由./manage.pytest命令识别和运行
  5. TestClass可能必须tearDown正确结束单元测试用例.

测试用例执行过程:

当你运行./manage.py testdjango时,设置a test_your_database_name并创建setUp函数中提到的所有对象(通常)并按照类中的放置顺序开始执行测试函数,并且一旦执行了所有测试函数,最后查找tearDown函数执行如果测试类中存在的任何内容并销毁测试数据库.

可能是因为你可能没有援引在设置功能中的对象创建或其他地方TestClass.

你能否发布整个追溯和测试文件来帮助你更好?