[英]Testing Django GraphQL API with database
我在用
from graphene_django.utils.testing import GraphQLTestCase
实施我的测试。 然而,结果来自
class PeopleTests(GraphQLTestCase):
GRAPHQL_SCHEMA = schema
def test_all_person_query_admin_token(self):
response = self.query(
'''
query getPersons{
persons{
firstName,
lastName
}
}
''',
op_name='persons',
headers={'HTTP_AUTHORIZATION': f'JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VybmFtZSI6ImFkbWluIiwiZXhwIjoxNTY2MTk4Mzg5LCJvcmlnSWF0IjoxNTY2MTk4MDg5fQ.P4u7PNKPLFsc4dvhBLw-EfuN8jg2d-lqdZjWruEDlpc'}
)
总是返回一个空的 Person 列表。 我在Django 测试数据库中读到在测试运行时看起来是空的,这是从 TestCase 继承的 GraphQLTestCase 的结果。 这篇文章很旧(2012 年),但我似乎找不到任何关于如何使用正确的测试数据库的文档。
对不起,如果我错过了什么,答案很明显。
谢谢
在使用 GraphQL 获取数据之前,请确保您正在创建人员。 也许您需要添加一些装置或添加setUp
方法来添加一些条目。 这是我使用 Pytest 测试 Graphene-Django API 的方法。
@pytest.mark.django_db
class TestBlogSchema(TestCase):
def setUp(self):
self.client = Client(schema)
self.blog = mixer.blend(Blog)
def test_single_blog_query(self):
response = self.client.execute(single_blog_query, variables={"id": self.blog.id})
response_blog = response.get("data").get("blog")
assert response_blog["id"] == str(self.blog.id)
您可以从此处查看完整示例
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.