Python 单元测试django序列化程序

Python 单元测试django序列化程序,python,django,unit-testing,serialization,pytest-django,Python,Django,Unit Testing,Serialization,Pytest Django,我正在尝试对序列化程序进行单元测试,但在执行序列化程序时,在获取预期的错误消息时遇到问题。_是否有效() 代码: 序列化程序.py class RandomSerializer(serializers.Serializer): sno = serializers.IntegerField(required=True) description = serializers.CharField(required=True) def __init__(self, *args,

我正在尝试对序列化程序进行单元测试,但在执行序列化程序时,在获取预期的错误消息时遇到问题。_是否有效()

代码:

序列化程序.py

class RandomSerializer(serializers.Serializer):
    sno = serializers.IntegerField(required=True)
    description = serializers.CharField(required=True)

    def __init__(self, *args, **kwargs):
        super(RandomSerializer, self).__init__(*args, **kwargs)

....
def test_random_serializer():
    val_dict = {'sno': 1, 'description':'test'}
    serializer = RandomSerializer(val_dict)
test_serializer.py

class RandomSerializer(serializers.Serializer):
    sno = serializers.IntegerField(required=True)
    description = serializers.CharField(required=True)

    def __init__(self, *args, **kwargs):
        super(RandomSerializer, self).__init__(*args, **kwargs)

....
def test_random_serializer():
    val_dict = {'sno': 1, 'description':'test'}
    serializer = RandomSerializer(val_dict)
此时,当我检查serializer.is_valid()时,它的计算结果为False,当我检查serializer.errors时,我得到以下错误

 {u'non_field_errors': [u'No input provided']}
我怎样才能解决这个问题?有什么想法吗

提前谢谢


PS:我还尝试了serializer=RandomSerializer(data=val_dict),但这甚至不会将值填充到序列化程序中。data

像这样编辑您的测试视图

def test_random_serializer(): 
    val_dict = {'sno': 1, 'description':'test'} 
    serializer = RandomSerializer(data=val_dict)
    if serializer.is_valid():
        return serializer.data # assertion test here....
    return serializer.errors

构建模型序列化程序时,我使用以下方法:

class RandomSerializer(serializers.ModelSerializer):
    fields = ('sno', 'description')

我想定义这样一个元组也适用于非模型序列化程序。

这有助于您,检查xordoquy答案,它应该会让您了解如何测试序列化程序我的观点是错误消息的计算结果总是{u'non_field_errors':[u'No input provided']},这不是我所期望的。请详细说明我如何解决这个问题?