Return-Path: Delivered-To: apmail-jakarta-cactus-user-archive@apache.org Received: (qmail 2605 invoked from network); 20 Nov 2002 21:08:26 -0000 Received: from unknown (HELO nagoya.betaversion.org) (192.18.49.131) by daedalus.apache.org with SMTP; 20 Nov 2002 21:08:26 -0000 Received: (qmail 13080 invoked by uid 97); 20 Nov 2002 21:09:04 -0000 Delivered-To: qmlist-jakarta-archive-cactus-user@jakarta.apache.org Received: (qmail 12946 invoked by uid 97); 20 Nov 2002 21:09:03 -0000 Mailing-List: contact cactus-user-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Cactus Users List" Reply-To: "Cactus Users List" Delivered-To: mailing list cactus-user@jakarta.apache.org Received: (qmail 12843 invoked by uid 98); 20 Nov 2002 21:09:01 -0000 X-Antivirus: nagoya (v4218 created Aug 14 2002) From: "Vincent Massol" To: "'Cactus Users List'" Subject: RE: [Musing] Offline mode Date: Wed, 20 Nov 2002 21:07:26 -0000 Organization: OCTO Technology Message-ID: <00bb01c290d8$d4532670$1edea8c0@octovma> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.4024 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 In-Reply-To: <102F37C11138AA41B8A1020CCFE828291549E0@zeus.ta-alberta.ca> Importance: Normal X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N Hi Zhang, > -----Original Message----- > From: Zhang, Li [mailto:Li.Zhang@ta-alberta.ca] > Sent: 20 November 2002 20:39 > To: 'Cactus Users List' > Subject: RE: [Musing] Offline mode > > I really like the idea of writing one test case for both in-container test > and out-of-container test. My only question is how soon I can use it in my > project? I just can't wait. :) Glad you like it! The answer is: as soon as someone starts participating :-) -Vincent > > Thanks. > > Li > > -----Original Message----- > From: Vincent Massol [mailto:vmassol@octo.com] > Sent: Wednesday, November 20, 2002 1:16 PM > To: 'Cactus Users List' > Subject: RE: [Musing] Offline mode > > > Hi Jason, > > The idea is simply productivity boost. Running a Cactus test takes time > whereas a mock one is fast. You can run around 400 mock objects tests in > a second whereas Cactus tests will take at least 10-20 seconds overall > (or more. That's best time). Cactus tests yields more value as they > really verify that it works. But MO tests are enough to find errors not > related to integration. Both are good and complementary. > > The idea is to have the best of both worlds by writing only one test (if > possible, not sure yet how well this would be). That is you would run > the tests quickly from your IDE as you type and from time to time you > would run with online mode on to verify it does really work. > > In practice I am using both MO and Cactus on my projects but I have to > write against 2 frameworks. > > Does it make sense? > > Thanks > -Vincent > > > -----Original Message----- > > From: Robertson, Jason [mailto:Jason.Robertson@acs-inc.com] > > Sent: 20 November 2002 18:35 > > To: 'Cactus Users List' > > Subject: RE: [Musing] Offline mode > > > > Sorry to take so long to respond, but I'm not clear as to the full > > benefits > > of doing this. If I'm creating a servlet, and that servlet does > nothing > > involving certain container resources (i.e., connection pools, EJBs, > > etc.), > > then I could see how a "mock" container could work. But how often does > > this > > happen? > > > > And I don't see at all how it could test JSPs (would the mock > container > > compile them into servlets?), or EJBs. > > > > The far majority of my cactus testing is testing EJBs, and will soon > be > > testing Struts action classes which will all use EJBs to get their > data. > > Am > > I just not a potential "offline mode" user, and that's why I can't see > it? > > Am I missing the big picture? > > > > Jason > > > > -----Original Message----- > > From: Vincent Massol [mailto:vmassol@octo.com] > > Sent: Saturday, November 02, 2002 12:00 PM > > To: 'Cactus Users List' > > Cc: cactus-dev@jakarta.apache.org > > Subject: [Musing] Offline mode > > > > > > Hi Cactusers, > > > > Today I haven been thinking about Cactus and Mock Objects and more > > specifically when to choose one over another, etc. The choice is not > > always easy. In the past, I had thought about implementing an offline > > mode in Cactus, i.e. the ability to run the same cactus test without a > > container. Of course, it won't be integration unit testing any more > but > > the rationale is the following: > > > > * use the offline mode when coding in your favorite IDE. Run the tests > > very often. > > * use the online mode to perform integration unit testing with your > > target containers. > > * The benefits over using an existing mock object library for > > Servlet/JSP/Filter/EJBs API is evident: tests written using the Cactus > > API can run "as is" in in-container mode. > > > > Of course, not all tests should be run in both modes but a lot of them > > could. > > > > At that time I had dismissed the idea because I did not see how I > could > > do it and I did not see the real interest of doing so. It seems much > > clearer now... :-) > > > > Here are some ideas: > > > > * The mode is specified by passing a JVM system parameter > > (-Dcactus.offline=true) > > * In offline mode, Cactus creates dummy (mock) Servlet implicit > objects, > > and filling them with the information it has (mostly from WebRequest). > > * In addition, the wrappers need to be extended (or added) to offer > > methods to set the behaviours of the mocks. For example: > > HttpServletRequestWrapper.setForwardResult(HttpServletResponse > response, > > OutputStream mockStream) > > * In online mode, the setForwardResult() and such can be ignored. > > However, if we want to refine this, we can also have an additional > > HttpServletRequestWrapper.setForwardResult(HttpServletResponse > response, > > OutputStream mockStream, boolean useInOnlineMode) API that tells > Cactus > > to use this even in online mode. This can be handy when the JSP is not > > yet written and you still wish to perform integration unit tests. > > * In offline mode, there is no HTTP connection to the server side and > > beginXXX(), testXXX() and endXXX() are all run on the client side. > > > > What do you think? > > > > -Vincent > > > > > > -- > > To unsubscribe, e-mail: > > > > For additional commands, e-mail: > > > > > > -- > > To unsubscribe, e-mail: > unsubscribe@jakarta.apache.org> > > For additional commands, e-mail: > help@jakarta.apache.org> > > > > -- > To unsubscribe, e-mail: > > For additional commands, e-mail: > > > -- > To unsubscribe, e-mail: unsubscribe@jakarta.apache.org> > For additional commands, e-mail: help@jakarta.apache.org> -- To unsubscribe, e-mail: For additional commands, e-mail: