# |
Apr 12th 2019, 14:43 |
ricksaccous |
if i head a project i might make people write some tests |
# |
Apr 12th 2019, 14:42 |
ricksaccous |
hahaha |
# |
Apr 12th 2019, 14:42 |
neon1024 |
Don’t worry, it took me three test suites to figure this stuff out! |
# |
Apr 12th 2019, 14:42 |
neon1024 |
..and if you rebake your fixtures your test -case will fail |
# |
Apr 12th 2019, 14:42 |
ricksaccous |
oh alright |
# |
Apr 12th 2019, 14:42 |
neon1024 |
Which might be out of scope for your test-case |
# |
Apr 12th 2019, 14:41 |
neon1024 |
As you’d be comparing all the keys in the response |
# |
Apr 12th 2019, 14:41 |
neon1024 |
No, you can’t do that either |
# |
Apr 12th 2019, 14:41 |
neon1024 |
You re-bake a fixture with imports, and your test suite will fail |
# |
Apr 12th 2019, 14:41 |
ricksaccous |
lollll |
# |
Apr 12th 2019, 14:41 |
ricksaccous |
you can just do array_keys or something on it and then compare the array of array_keys? |
# |
Apr 12th 2019, 14:41 |
neon1024 |
Asserting values will suffer the same fate |
# |
Apr 12th 2019, 14:41 |
ricksaccous |
oh |
# |
Apr 12th 2019, 14:41 |
neon1024 |
No, you only want to assert the keys exist |
# |
Apr 12th 2019, 14:40 |
neon1024 |
and regenerating all your json fixtures |
# |
Apr 12th 2019, 14:40 |
ricksaccous |
comparing two php arrays is a lot easier |
# |
Apr 12th 2019, 14:40 |
neon1024 |
Any schema change requires rebaking all your fixtures |
# |
Apr 12th 2019, 14:40 |
ricksaccous |
yeah that makes sense |
# |
Apr 12th 2019, 14:40 |
neon1024 |
Because it’s far too fragile |
# |
Apr 12th 2019, 14:40 |
ricksaccous |
i am just thinking aloud as to why |
# |
Apr 12th 2019, 14:40 |
ricksaccous |
yeah |
# |
Apr 12th 2019, 14:39 |
ricksaccous |
actually trimming white space would ruin some stuff |
# |
Apr 12th 2019, 14:39 |
neon1024 |
No, as I said, you don’t want to do that |
# |
Apr 12th 2019, 14:39 |
neon1024 |
Well that’s what `$this->assertResponseContains()` can do for you, but it doesn’t understand nesting |
# |
Apr 12th 2019, 14:39 |
ricksaccous |
you might be able to do assertEqual if you trim whitespace, not sure about that |
# |
Apr 12th 2019, 14:38 |
ricksaccous |
hehe, yeah i suppose, json as arrays seem the easiest in php |
# |
Apr 12th 2019, 14:38 |
neon1024 |
Even with fixtures |
# |
Apr 12th 2019, 14:38 |
neon1024 |
But you don’t want to to `$this->assertEqual($response, $json)` as it’s too fragile |
# |
Apr 12th 2019, 14:37 |
ricksaccous |
got it |
# |
Apr 12th 2019, 14:37 |
neon1024 |
@ricksaccous I am refactoring the way we produce our json response, away from a horrible helper into using league/fractal. So I need to have test-cases to ensure that the refactor is producing the same results as the existing response |
# |
Apr 12th 2019, 14:32 |
ricksaccous |
oh ok |
# |
Apr 12th 2019, 14:32 |
neon1024 |
I am writing a test-case for my JSON web service. So neither of those |
# |
Apr 12th 2019, 14:32 |
ricksaccous |
lol |
# |
Apr 12th 2019, 14:32 |
ricksaccous |
or just a raw json response? |
# |
Apr 12th 2019, 14:31 |
ricksaccous |
with html |
# |
Apr 12th 2019, 14:31 |
ricksaccous |
wait are you trying to grab the json out of a web page? |
# |
Apr 12th 2019, 14:31 |
neon1024 |
Makes sense, thanks @dereuromark |
# |
Apr 12th 2019, 14:31 |
neon1024 |
Yeah, array and assert array I guess |
# |
Apr 12th 2019, 14:31 |
dereuromark |
it can json decode for it |
# |
Apr 12th 2019, 14:31 |
ricksaccous |
oh wow |
# |
Apr 12th 2019, 14:31 |
neon1024 |
Figured perhaps regex? But regex on json feels kinda wrong |