Comme mentionné par Ed I , assertIn
est probablement la réponse la plus simple pour trouver une chaîne dans une autre. Cependant, la question précise :
Je veux m'assurer que mon result
contient au moins l'objet json (ou la chaîne) que j'ai spécifié comme deuxième argument ci-dessus, c'est-à-dire, {"car" : ["toyota","honda"]}
C'est pourquoi j'utiliserais plusieurs assertions afin que des messages utiles soient reçus en cas d'échec - les tests devront être compris et maintenus dans le futur, potentiellement par quelqu'un qui ne les a pas écrits à l'origine. Par conséquent, en supposant que nous sommes à l'intérieur d'un django.test.TestCase
:
# Check that `car` is a key in `result`
self.assertIn('car', result)
# Compare the `car` to what's expected (assuming that order matters)
self.assertEqual(result['car'], ['toyota', 'honda'])
Ce qui donne des messages utiles comme suit :
# If 'car' isn't in the result:
AssertionError: 'car' not found in {'context': ..., 'etc':... }
# If 'car' entry doesn't match:
AssertionError: Lists differ: ['toyota', 'honda'] != ['honda', 'volvo']
First differing element 0:
toyota
honda
- ['toyota', 'honda']
+ ['honda', 'volvo']