Hi!

LOL! :) Well, that's odd! I believe that when you run an WOApp, magic happens because there's an enormous amount of stuff running before the app starts taking requests. But when you run it based on the Main class in the test framework, it's different, that code is not run... I think...

Could it be that new EOEditingContext() has something like if ( frameworkIsNotInitialized() ) { activateMagicStuff(); } ?

  Yours

Miguel Arroz

On 2007/11/23, at 17:37, Chuck Hill wrote:


On Nov 23, 2007, at 9:31 AM, Miguel Arroz wrote:

Hi!

But where's all the stuff needed to load models from the disk, etc etc etc? IE, the EOF initialization?

Do I need that? Doesn't it "just happen"? I don't see any code there that does that...

Let's see...  Yep, WebObjects.

:-)

Chuck


On 2007/11/23, at 16:34, Chuck Hill wrote:


On Nov 23, 2007, at 8:23 AM, Miguel Arroz wrote:

Hi!

On 2007/11/23, at 02:45, Chuck Hill wrote:

I don't use WOUnitTest nor MockEditingContext. I use a real EOEditingContext and often fetch from and save to the database. This makes the test run more slowly than "traditional" unit tests. However, I think the advantages of really getting EOF involved (and finding bugs early) outweigh the slowness.

How exactly is that done? How do you initialize all the needed stuff to be able to create a new context without crashing the whole thing?

I don't think that I do anything very special.  Let me see...

1. For bundle loading to work properly, you need to use a custom Working Directory for the JUnit/TestNG launcher:
${workspace_loc:MyFW/dist/MyFW.framework/Resources/Java}
Apps are similar but a different path.

2. Again, for bundle loading, add the jars from the built framework / application (can be in the projects in the Eclipse workspace) to the User Entries of the classpath and move above whatever is there. Do the same for all the frameworks that it references.

3. The usual connection dictionary setting classes to set things up and switch prototypes etc.

4. Sometimes I need to call primeApplication, IIRC for component tests:

WOApplication.primeApplication("MyFW", null, "net.foo.bar.appserver.FWApplication");

Where FWApplication is a subclass of WOApplication. You can also leave the last param blank and it will use WOApplication - sometimes that works for simple stuff.


Chuck




--

Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems.
http://www.global-village.net/products/practical_webobjects






Miguel Arroz
http://www.terminalapp.net
http://www.ipragma.com




--

Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems.
http://www.global-village.net/products/practical_webobjects






Miguel Arroz
http://www.terminalapp.net
http://www.ipragma.com



Attachment: smime.p7s
Description: S/MIME cryptographic signature

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to