On 11/29/07, Rob Hills <[EMAIL PROTECTED]> wrote:
> Hi Matt,
>
> On 29 Nov 2007 at 9:41, Matt Raible wrote:
>
> > We're open to suggestions on how to improve this. The reason we use
> > negative ids is because if we don't, Oracle gets its sequences messed
> > up. You could fix things in your project by modifying sample-data.xml
> > to have positive keys and then run "appfuse:full-source" and modify
> > all your tests. Or modify AMP to generate positive ids.
>
> Would you consider it normal practice to run unit tests when deploying to a
> production system? I would have thought that unit testing would be done for
> development and test environments, but not for production environments.
No, I don't think this is a normal practice. You may have a set of
integration tests that run against a production database in a staging
environment, but I don't know if you'd actually modify the production
data as part of the tests.
We could also eliminate all integration tests - do pure unit testing -
and get rid of this debate. ;-)
Matt
>
> My gut feeling is that the solution to the default-data problem would be to
> decouple it from tests if possible, so that it can be run independently of
> them. I think the idea of negative IDs works nicely for development and
> testing, but they probably have no place in a production environment.
>
> > On 11/29/07, Laith Al-Khateeb <[EMAIL PROTECTED]> wrote:
> > > Yes you're right, that's because the ActionTest cases expect negative IDs
> > > (-1, -2) to be in the database, which are used in sample-data.xml but
> > > that
> > > I didn't specify in default-data.xml (which is used when prod is
> > > activated).
> > >
> > > Ok, to step back a bit. If I was not going to put any data for my tables
> > > in
> > > default-data.xml, then the tests will still fail when activating the prod
> > > profile and that's because the ActionTests always assume that there will
> > > be
> > > records with negative IDs in the database.
> > >
> > > This is from action-test.ftl:
> > >
> > > public void testEdit() throws Exception {
> > > log.debug("testing edit...");
> > > action.${setIdMethodName}(-1L);
> > > assertNull(action.get${pojo.shortName} ());
> > > assertEquals("success", action.edit());
> > > assertNotNull(action.get${pojo.shortName}());
> > > assertFalse(action.hasActionErrors());
> > > }
> > >
> > >
> > > So in effect, the line of "action.${setIdMethodName}(-1L);"
> > > will always fail in prod.
> > >
> > > Now the question is whether this is a bug or whether it is there by design
> > > (to prevent people from running tests in prod), in which case loading data
> > > from default-data.xml becomes an unusable feature.
>
> Cheers,
> Rob Hills
> Waikiki, Western Australia
> Mobile +61 (412) 904-357
> Fax: +61 (8) 9529-2137
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]