J'ai une application Web Pyramid que j'essaie de tester à l'unité.Paramètre d'envoi de test d'unité pyramidale
Dans mes tests fichier je ce bout de code:
anyparam = {"isApple": "True"}
@parameterized.expand([
("ParamA", anyparam, 'success')])
def test_(self, name, params, expected):
request = testing.DummyRequest(params=params)
request.session['AI'] = ''
response = dothejob(request)
self.assertEqual(response['status'], expected, "expected response['status']={0} but response={1}".format(expected, response))
Alors que dans mon point de vue:
@view_config(route_name='function', renderer='json')
def dothejob(request):
params = json.loads(request.body)
value = params.get('isApple') #true or false.
Cependant, quand je suis en train de test d'unité, je reçois cette erreur:
JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Cependant, lorsque je fais la même requête via POST via un navigateur web, cela fonctionne parfaitement.
Si je fais cela, il y a une erreur d'attribut: l'objet NoneType n'a aucun attribut. Lorsque j'ai essayé de déboguer None est envoyé en tant que paramètres. J'ai également essayé à la fois - request.json_body et json.loads (request.body), même placé dans try/except. – theconqueror972
OK, je n'ai pas vraiment le temps de déboguer cela, mais vous pourriez essayer de faire 'testing.DummyRequest (body = json.dumps (params) .encode ('utf-8'))', ou 'request = test .DummyRequest() 'then' request.body = json.dumps (params) .encode ('utf-8') '. –