Alejandro -- when you tried it, did you not get:

Caused by: java.lang.ClassNotFoundException:com.google.gwt.core.client.GWTBridge

If so, what GWT version are you using?

On Wed, Aug 19, 2009 at 11:33 AM, Alejandro D. Garin<[email protected]> wrote:
> yes david, that seems to work. Personally I still prefer to use interfaces
> in the view rather than using Widgets.
>
> Cheers,
>
> On Wed, Aug 19, 2009 at 12:24 PM, davis <[email protected]>
> wrote:
>>
>> Here you go...try it with this:
>>
>>
>> http://code.google.com/p/google-web-toolkit/source/browse/releases/1.7/user/src/com/google/gwt/junit/GWTMockUtilities.java
>>
>> import static org.easymock.classextension.EasyMock.createMock;
>> import static org.junit.Assert.assertNotNull;
>>
>> import org.junit.After;
>> import org.junit.Before;
>> import org.junit.Test;
>>
>> import com.google.gwt.junit.GWTMockUtilities;
>> import com.google.gwt.user.client.ui.TextBox;
>>
>> public class TestSomething {
>>
>>       �...@before
>>        public void setUp() throws Exception {
>>                GWTMockUtilities.disarm();
>>        }
>>
>>       �...@after
>>        public void tearDown() throws Exception {
>>                GWTMockUtilities.restore();
>>        }
>>
>>       �...@test
>>        public void testThatEasyMockWorksWithTextBox() {
>>                TextBox box = createMock(TextBox.class);
>>                assertNotNull(box);
>>        }
>> }
>>
>> On Aug 19, 11:19 am, davis <[email protected]> wrote:
>> > Probably stems from the constructor doing this:
>> >
>> >   /**
>> >    * Creates an empty text box.
>> >    */
>> >   public TextBox() {
>> >     this(Document.get().createTextInputElement(), "gwt-TextBox");
>> >   }
>> >
>> > http://code.google.com/p/google-web-toolkit/source/browse/releases/1....
>> >
>> > Anyone have a mock workaround for ui elements they'd like to share?
>> > Is there a mock framework out there for GWT ui elements?
>> >
>> > On Aug 19, 11:14 am, davis <[email protected]> wrote:
>> >
>> > > My fault -- I thought you were talking about something else.  It
>> > > appears you are correct.  It looks like even easy mock class extension
>> > > can't do it.  Somewhere in the initialization code of TextBox.class it
>> > > calls GWT.create()...major bummer.
>> >
>> > > On Aug 19, 10:59 am, "Alejandro D. Garin" <[email protected]> wrote:
>> >
>> > > > Hi David,
>> >
>> > > > I tried your example, but I have this error:
>> >
>> > > > Caused by: java.lang.UnsupportedOperationException: ERROR:
>> > > > GWT.create() is
>> > > > only usable in client code!  It cannot be called, for example, from
>> > > > server
>> > > > code.  If you are running a unit test, check that your test case
>> > > > extends
>> > > > GWTTestCase and that GWT.create() is not called from within an
>> > > > initializer
>> > > > or constructor.
>> >
>> > > > Stacktrace:
>> >
>> > > > java.lang.ExceptionInInitializerError
>> > > >     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> > > >     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>> > > >     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
>> > > > Source)
>> > > >     at java.lang.reflect.Method.invoke(Unknown Source)
>> > > >     at
>> > > > net.sf.cglib.proxy.Enhancer.setCallbacksHelper(Enhancer.java:619)
>> > > >     at
>> > > > net.sf.cglib.proxy.Enhancer.setThreadCallbacks(Enhancer.java:612)
>> > > >     at
>> > > > net.sf.cglib.proxy.Enhancer.registerCallbacks(Enhancer.java:581)
>> > > >     at
>> > > >
>> > > > org.easymock.classextension.internal.ClassProxyFactory.createProxy(ClassProxyFactory.java:108)
>> > > >     at
>> > > > org.easymock.internal.MocksControl.createMock(MocksControl.java:51)
>> > > >     at
>> > > > org.easymock.classextension.EasyMock.createMock(EasyMock.java:46)
>> > > >     at
>> > > > example.publico.client.SimpleTest.testSimple(SimpleTest.java:10)
>> > > >     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> > > >     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>> > > >     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
>> > > > Source)
>> > > >     at java.lang.reflect.Method.invoke(Unknown Source)
>> > > >     at junit.framework.TestCase.runTest(TestCase.java:168)
>> > > >     at junit.framework.TestCase.runBare(TestCase.java:134)
>> > > >     at junit.framework.TestResult$1.protect(TestResult.java:110)
>> > > >     at junit.framework.TestResult.runProtected(TestResult.java:128)
>> > > >     at junit.framework.TestResult.run(TestResult.java:113)
>> > > >     at junit.framework.TestCase.run(TestCase.java:124)
>> > > >     at junit.framework.TestSuite.runTest(TestSuite.java:232)
>> > > >     at junit.framework.TestSuite.run(TestSuite.java:227)
>> > > >     at
>> > > >
>> > > > org.junit.internal.runners.OldTestClassRunner.run(OldTestClassRunner.java:76)
>> > > >     at
>> > > >
>> > > > org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:45)
>> > > >     at
>> > > >
>> > > > org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
>> > > >     at
>> > > >
>> > > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
>> > > >     at
>> > > >
>> > > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
>> > > >     at
>> > > >
>> > > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
>> > > >     at
>> > > >
>> > > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
>> > > > Caused by: java.lang.UnsupportedOperationException: ERROR:
>> > > > GWT.create() is
>> > > > only usable in client code!  It cannot be called, for example, from
>> > > > server
>> > > > code.  If you are running a unit test, check that your test case
>> > > > extends
>> > > > GWTTestCase and that GWT.create() is not called from within an
>> > > > initializer
>> > > > or constructor.
>> > > >     at com.google.gwt.core.client.GWT.create(GWT.java:85)
>> > > >     at
>> > > > com.google.gwt.user.client.ui.UIObject.<clinit>(UIObject.java:140)
>> > > >     ... 30 more
>> >
>> > > > On Wed, Aug 19, 2009 at 11:09 AM, davis
>> > > > <[email protected]>wrote:
>> >
>> > > > > > If your view interface return a TextBox you can't test the
>> > > > > > presenter with
>> > > > > > JUnit, you will need to use GWTTestCase.
>> >
>> > > > > Sure you can:
>> >
>> > > > > import static org.easymock.classextension.EasyMock.*;
>> > > > > import com.google.gwt.user.client.ui.TextBox;
>> >
>> > > > > public class SomePresenterTestCase {
>> >
>> > > > >   private MyPresenter presenter;
>> > > > >   private MyView view;
>> >
>> > > > >   @Test
>> > > > >   public void testSomething() {
>> > > > >       TextBox mockBox = createMock(TextBox.class);
>> > > > >       MyView mockView = createMock(MyView.class);
>> > > > >       presenter = new MyPresenter(mockView);
>> > > > >       expect(mockView.getSomeTextBox()).andReturn(mockBox);
>> > > > >       replay(mockView);
>> > > > >       replay(mockBox);
>> > > > >       TextBox box = presenter.getDisplay().getSomeTextBox();
>> > > > >       verify(mockView);
>> > > > >    }
>> > > > > }
>>
>
>
> >
>



-- 
Zeno Consulting, Inc.
home: http://www.zenoconsulting.biz
blog: http://zenoconsulting.wikidot.com
p: 248.894.4922
f: 313.884.2977

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to