在序列化器测试中设置 kwargs

set kwargs in test of serializer

我编写了一个序列化程序,在其中我在其 validate() 中使用了 kwargs。 在这里:

  def validate(self, value):
    course_id = self.context.get("view").kwargs.get("course_id ")
    ....

现在我想写一个测试,但我不知道如何将 kwargs 传递给它。

这是我正在尝试编写的测试:

def test_valid_data(self):
    serializer = CourseSerializer(
        data=self.course,
             )
    self.assertTrue(serializer.is_valid())

我对此进行了测试,但没有用:

def test_valid_data(self):
    serializer = CourseSerializer(
        data=self.course,
         kwargs={
            "course_id": test_course_id
        },

    )
    self.assertTrue(serializer.is_valid())

您可以在序列化程序中发送带有附加字段的上下文。

CategorySerializer(data=self.category,context={'request': request,'course_id': test_course_id})

并在序列化程序中使用上下文。

course_id = self.context.get('course_id')