# |
Jul 5th 2017, 22:58 |
jeremyharris |
yep |
# |
Jul 5th 2017, 22:58 |
urowe |
Let me see if I understand this, fixtures are loaded to the test database before tests are run? |
# |
Jul 5th 2017, 22:58 |
jeremyharris |
the table will fetch from the test database rather than the live one, assuming you have it configured correctly and your test bootstrap is correct (ships with cakephp/app) |
# |
Jul 5th 2017, 22:57 |
jeremyharris |
if you want to get a user from the fixture during a test case, simply use TableRegistry::get(‘Users’)->get($userId) |
# |
Jul 5th 2017, 22:57 |
urowe |
Aren't they redundant ? |
# |
Jul 5th 2017, 22:57 |
jeremyharris |
I’m not sure what you mean. dataProvider and fixtures are two different things. |
# |
Jul 5th 2017, 22:57 |
urowe |
Is there any way to stop the call from where it happens and have these records from a dataProvider method? |
# |
Jul 5th 2017, 22:56 |
jeremyharris |
for example, if you have UsersFixture that has some test user records in it. and you delete a user in a test case, on the next test case, the user would exist again — you have a fresh database to test with. this allows you to write predictable tests against the database because you always know what the database will look like (fixtures) on each test case |
# |
Jul 5th 2017, 22:55 |
jeremyharris |
they are dropped on each test, so your test database is fresh on each test case |
# |
Jul 5th 2017, 22:54 |
jeremyharris |
urowe a fixture file is a list of records that is inserted into the test database configuration, usually with $this->loadFixtures |
# |
Jul 5th 2017, 22:43 |
jarard01 |
I am setting the template for a form on the fly on my controller, but the same code template is used b severla methods, how can I call it globally |
# |
Jul 5th 2017, 22:37 |
urowe |
Hi guys, I don't really understand how fixtures are used in unit tests, like I'm not even calling them anywhere and they are saved and stuff, are they like dataproviders in phpunit? |
# |
Jul 5th 2017, 22:05 |
jeremyharris |
any time :slightly_smiling_face: |
# |
Jul 5th 2017, 22:03 |
origamiwork |
Thanks for the help. I wouldn't have thought about the iteration by myself for a while. |
# |
Jul 5th 2017, 22:03 |
jeremyharris |
hehe roll with it |
# |
Jul 5th 2017, 22:02 |
origamiwork |
Yay, I got it. It was something dumb as I thought. I was only expecting one result in the view, so I wasn't actually iterating on the passed object. (I'll use the fact that I haven't worked with cake in a long time as my excuse :D ) |
# |
Jul 5th 2017, 21:59 |
jeremyharris |
or since they’re so short, gist the action and view and I can give you a second pair of eyes |
# |
Jul 5th 2017, 21:59 |
jeremyharris |
to see what it’s getting. I stand by my suggestion to use debug kit :slightly_smiling_face: |
# |
Jul 5th 2017, 21:58 |
jeremyharris |
you can try debug($this->viewVars) on the view |
# |
Jul 5th 2017, 21:58 |
origamiwork |
the controller is pretty short too. I think it might just be something obvious I'm missing. |
# |
Jul 5th 2017, 21:57 |
jeremyharris |
:) easy to read then |
# |
Jul 5th 2017, 21:56 |
origamiwork |
no, that wouldn't be it, the view is only 4 lines long |
# |
Jul 5th 2017, 21:55 |
jeremyharris |
perhaps you’re overwriting it somewhere earlier in the view? |
# |
Jul 5th 2017, 21:55 |
origamiwork |
hmmm... strange, it wasn't finding anything. It must be some stupid small error I'm making somewhere. |
# |
Jul 5th 2017, 21:55 |
jeremyharris |
if you use debug kit, you can inspect what variables the view is getting |
# |
Jul 5th 2017, 21:55 |
jeremyharris |
yep! that’s usually how it is done |
# |
Jul 5th 2017, 21:54 |
origamiwork |
Should I be able to pass a query object to a view? I was passing the results of the magic findBy function to a view and iterating through them there, but it wasn't able to find any of the variables. |
# |
Jul 5th 2017, 21:53 |
origamiwork |
Awesome, thanks. |
# |
Jul 5th 2017, 21:50 |
jeremyharris |
(for future ref) |
# |
Jul 5th 2017, 21:50 |
jeremyharris |
if you want to inspect the results without iterating through them, you can use ->toArray() |
# |
Jul 5th 2017, 21:49 |
origamiwork |
@slackebot Thanks for the info, I was actually using that link to write my code. I think what you said about iterating is working. When I loop through the results using foreach, it seems to have the correct data. |
# |
Jul 5th 2017, 21:38 |
jeremyharris |
more info: https://book.cakephp.org/3.0/en/orm/retrieving-data-and-resultsets.html#dynamic-finders |
# |
Jul 5th 2017, 21:37 |
jeremyharris |
to execute, iterate through the results like you would a regular find() query, or use first(), all(), etc |
# |
Jul 5th 2017, 21:37 |
jeremyharris |
perhaps what you’re seeing is the debug output, which shows information about the query but doesn’t actually execute it |
# |
Jul 5th 2017, 21:36 |
jeremyharris |
origamiwork it will return a query object |
# |
Jul 5th 2017, 21:35 |
origamiwork |
Hello everybody, should a magic findBy function return the SQL it's trying to execute? I have a field in a table called urlname, and when I run the function findByUrlname($url_name), it returns "SELECT Pg.id AS `Pg__id`, Pg.urlname AS `Pg__urlname`, ... WHERE Pg.urlname = :c0" |
# |
Jul 5th 2017, 20:57 |
gutts |
wouldn't I have to use call_user_func if I did that? or is there some tricky way of doing it |
# |
Jul 5th 2017, 20:56 |
gutts |
since it accepts a closure |
# |
Jul 5th 2017, 20:56 |
gutts |
hm, i need the same function to pass to notEmpty. is there an easy way to reference it if I define it in my model table? |
# |
Jul 5th 2017, 20:00 |
jarard01 |
ohh i got it - very nice |
# |
Jul 5th 2017, 19:58 |
jarard01 |
is there a cake way of converting a date to datetime, ie 1 Jul 2017 to '2017-07-01 00:00:00' |