Stuff, more stuff, and stuff to change.  I want to avoid cluttering the 
post with too much detail that will make people's eyes glaze over.  

What I should do when I have time is clone the database schema, eliminate 
anything non-relevant, repopulate it with "lorem ipsum" to satisfy my 
client that I'm not disclosing anything proprietary, and see if I can 
recreate it.  Then I can post it on Github.

I did find something suspicious that make me think that this is related to 
fixtures: My test pulls in six fixtures, but when I look at my 'test' 
database, only one fixture table has been created, the one corresponding to 
"stuff_to_change".  When I open it's class file, it's the only one that I 
didn't define "public $records = ...".  

According to http://book.cakephp.org/2.0/en/development/testing.html:

CakePHP performs the following during the course of a fixture based test 
> case:
> Creates tables for each of the fixtures needed.
> Populates tables with data, if data is provided in fixture.
> Runs test methods.
> Empties the fixture tables.
> Removes fixture tables from database.

So it makes me suspicious that a table still remains in the test database 
after the test runner is finished.
Every time I run a test, I've been seeing the following stack trace in my 
error_log:

2012-07-23 19:37:52 Error: [MissingActionException] Action 
> AppController::webroot() could not be found.
> #0 /opt/cakephp_2.0/lib/Cake/Routing/Dispatcher.php(186): 
> Controller->invokeAction(Object(CakeRequest))
> #1 /opt/cakephp_2.0/lib/Cake/Routing/Dispatcher.php(161): 
> Dispatcher->_invoke(Object(AppController), Object(CakeRequest), 
> Object(CakeResponse))
> #2 /opt/csw/apache2/share/htdocs/kaos/app/webroot/index.php(93): 
> Dispatcher->dispatch(Object(CakeRequest), Object(CakeResponse))
> #3 {main}


I already created a ticket for this, but kept going because I didn't think 
it was related.  The page comes up normally after a test is run.  Now I 
wonder if this exception is hiding some other problem.

On Tuesday, July 24, 2012 2:22:51 AM UTC-4, Ralf Rottmann wrote:
>
> What is in the 'Stuff', 'MoreStuff' and 'StuffToChange' arrays?
>
> On Tuesday, July 24, 2012 2:05:40 AM UTC+2, lsiden wrote:
>>
>> I created a component test that modifies and saves a model with HABTM 
>> associated data.   
>>
>> Before I upgraded to CakePHP 2.0, I tried to accomplish this with 
>> unbindModel() all over my code, but wanted to try something a little 
>> cleaner albeit less efficient.  I spent hours reading  
>> http://book.cakephp.org/2.0/en/models/saving-your-data.html and wanted 
>> to try doing it the "Cake" way: 
>>
>> $data = array(
>>>   'User' => array(
>>>     'id' => 99,
>>>     ...
>>>   ),
>>>   'Stuff' => array( ... some stuff ...),
>>>   'MoreStuff => array( .. more stuff ...),
>>>   'StuffToChange' => array( ... this is the stuff I added a record to 
>>> ...)
>>> );
>>
>>
>> When I look at the query log, Cake generated queries to delete Stuff, 
>> MoreStuff, and ReallyImportantStuff, but only does inserts into 
>> StuffToChange.
>>
>> I'm wondering if this is somehow related to the fact that I'm using 
>> fixtures in my test.  I suppose I could clone the real database and try it 
>> on that to see if its a fixture problem.  (I'm too exhausted now to try 
>> anything.  I need a break!)  
>>
>> So in order to make progress I had to give up for now and do it the 
>> "brute force" (but much more effiicient way):
>>
>> $model->query("insert into stuff_to_change where user_id=99 and 
>>> something_id=xxx")
>>
>>
>> I suppose Cake purists will tell me that this is wrong and could create 
>> problems in the future if I were to migrate the data to a different 
>> database platform, for example, but I wasted half a day trying to get this 
>> to work and I can't afford to spend much more time when I have a 
>> functioning workaround.  Even if it turns out to be an issue that will only 
>> happen when I use my fixtures, I want it to work the same way in a unit 
>> test as it works in the field.
>>
>> Anyone else having this problem in Cake 2.x?  (I'm actually in the master 
>> branch from the Git repo - yeah, I'm bleeding edge now).
>>
>

-- 
Our newest site for the community: CakePHP Video Tutorials 
http://tv.cakephp.org 
Check out the new CakePHP Questions site http://ask.cakephp.org and help others 
with their CakePHP related questions.


To unsubscribe from this group, send email to
[email protected] For more options, visit this group at 
http://groups.google.com/group/cake-php

Reply via email to