【发布时间】:2022-01-18 02:07:34
【问题描述】:
我在我的序列化器中返回用户的 UUID,这工作正常。然而,当编写一个单元测试来测试这个返回时,尽管它们被以相同的方式调用,但测试还是失败了。下面是我的代码的简化版本。
我的 serializers.py:
class UserSerializer(serializers.ModelSerializer):
user_sso = serializers.SerializerMethodField("get_user_sso")
class Meta:
model = get_user_model()
fields = (
"user_sso",
)
def get_user_sso(self, user):
return user.profile.sso_id
我在 test_views.py 中的单元测试
class TestUserAPIView(BaseAPIViewTest):
factory = factories.UserFactory
def expected_response(self, user):
return {
"user_sso": user.profile.sso_id,
}
失败的测试消息(工厂生成的用户是最上面的):
E - 'user_sso': UUID('f696d740-bdd5-43a3-8f58-406b7a1e117d')},
E ? ----- -
E + 'user_sso': 'f696d740-bdd5-43a3-8f58-406b7a1e117d'},
如何让这个测试通过?
我在当前输出的开头没有“UUID(”这个词,这看起来是个问题,但我不确定如何在没有所有内容的情况下删除它?非常感谢。
【问题讨论】:
标签: python django unit-testing