jasmine-jsonpath
A Plugin for Jasmine, to enable jsonpath(http://goessner.net/articles/JsonPath/) in matchers.
Installation
Download jasmine-jsonpath from here and put it in your jasmine test runner file( typically it's your SpecRunner.html). And you need jsonpath and json2 as well.
Methods
Let's say we have an object like this:
obj = languages: type: "Dynamic" samples: "Ruby" "Python" type: "Static" samples: "Java" "C" type: "Dynamic" samples: "JavaScript" ;
Then we want to get one special node by jsonpath:
;
check this out if you want to know all details about jsonpath
Matchers
Matcher toHasJsonPath
can help you to verify whether an object has a given jsonpath
or not:
;
additionally, there is another more powerful(useful) matcher named toHasSchema
, consider you have an object(request will be sent to server or response from server):
languages: type: "Dynamic" samples: "Ruby" "Python" type: "Static" samples: "Java" "C" type: "Dynamic" samples: "JavaScript" tools: category: name: "Common" ;
and to make sure none didn't break the schema and none will break it in the future, we need to write tests to ensure it:
;
Then, if someone accidently made a typo, say, languages
to longuages
, then the test will fail. You can make it more complex and more specified like:
;
And that's it.