exactly(n) function in JMock

View: New views
8 Messages — Rating Filter:   Alert me  

exactly(n) function in JMock

by ravisankarvivek :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,
I am facing a slightly weird problem. I set an expectation as

exactly(n).of(<mock-obj>).f()

Bug
Suppose the function f() is called 5 times; For any n < 5, the expectation fails. However, if I provide the value of n > 5, it passes for all!!
Eg: exactly(100).of(<mock-obj>).f()
The above expectation passes, even though the function f() is called only 5 times!

Any thoughts ?

PS: The expectation is under a context and the syntax is perfectly fine. In short, the java file compiles fine!

-Vivek



Re: exactly(n) function in JMock

by Julien D :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I'm facing the same problem.

It seems to be a bug in JMock. See the JIRA http://jira.codehaus.org/browse/JMOCK-129.

ravisankarvivek wrote:
Hi,
I am facing a slightly weird problem. I set an expectation as

*exactly(n).of(<mock-obj>).f()*

*Bug*
Suppose the function f() is called 5 times; For any n < 5, the expectation
fails. However, if I provide the value of n > 5, it passes for all!!
Eg: *exactly(100).of(<mock-obj>).f()*
The above expectation passes, even though the function f() is called only 5
times!

Any thoughts ?

PS: The expectation is under a context and the syntax is perfectly fine. In
short, the java file compiles fine!

-Vivek

Re: exactly(n) function in JMock

by Julien D :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

This problem seems pretty old. Does anyone know somthing about that ?

For information I use jmock 2.5.1 and jmock-junit4 2.5.1.


I'm facing the same problem.

It seems to be a bug in JMock. See the JIRA http://jira.codehaus.org/browse/JMOCK-129.

ravisankarvivek wrote:
Hi,
I am facing a slightly weird problem. I set an expectation as

*exactly(n).of(<mock-obj>).f()*

*Bug*
Suppose the function f() is called 5 times; For any n < 5, the expectation
fails. However, if I provide the value of n > 5, it passes for all!!
Eg: *exactly(100).of(<mock-obj>).f()*
The above expectation passes, even though the function f() is called only 5
times!

Any thoughts ?

PS: The expectation is under a context and the syntax is perfectly fine. In
short, the java file compiles fine!

-Vivek


Re: exactly(n) function in JMock

by Nat Pryce :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Can you create a small test that reproduces the problem?  E.g. one
that fails but should not.

--Nat

2009/5/29 Julien D <myrddin22@...>:

>
> This problem seems pretty old. Does anyone know somthing about that ?
>
> For information I use jmock 2.5.1 and jmock-junit4 2.5.1.
>
>
> Julien D wrote:
>>
>> I'm facing the same problem.
>>
>> It seems to be a bug in JMock. See the JIRA
>> http://jira.codehaus.org/browse/JMOCK-129.
>>
>>
>> ravisankarvivek wrote:
>>>
>>> Hi,
>>> I am facing a slightly weird problem. I set an expectation as
>>>
>>> *exactly(n).of(<mock-obj>).f()*
>>>
>>> *Bug*
>>> Suppose the function f() is called 5 times; For any n < 5, the
>>> expectation
>>> fails. However, if I provide the value of n > 5, it passes for all!!
>>> Eg: *exactly(100).of(<mock-obj>).f()*
>>> The above expectation passes, even though the function f() is called only
>>> 5
>>> times!
>>>
>>> Any thoughts ?
>>>
>>> PS: The expectation is under a context and the syntax is perfectly fine.
>>> In
>>> short, the java file compiles fine!
>>>
>>> -Vivek
>>>
>>>
>>
>>
>
> --
> View this message in context: http://www.nabble.com/exactly%28n%29-function-in-JMock-tp20322373p23780192.html
> Sent from the jMock - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>    http://xircles.codehaus.org/manage_email
>
>
>



--
http://www.natpryce.com

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email



Re: exactly(n) function in JMock

by Julien D :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Here's my test :

import org.jmock.Expectations;
import org.jmock.Mockery;
import org.jmock.integration.junit4.JUnit4Mockery;
import org.junit.Before;
import org.junit.Test;

public class ExactlyTest {

        private interface IDao {
                void someMetod();
        }
       
        private class SomeService {
               
                private IDao dao;
               
                private void someServiceMethod() {
                        //First call
                        dao.someMetod();
                        //Second call
                        dao.someMetod();
                }

                public void setDao(IDao dao) {
                        this.dao = dao;
                }
        }
       
        //Mock context
        private Mockery context;
       
        private SomeService underTest;
       
        private IDao iDao;
       
        @Before
        public void before() throws Exception {
                context = new JUnit4Mockery();
                underTest = new SomeService();
                iDao = context.mock(IDao.class);
               
                underTest.setDao(iDao);
        }
       
        //Failing as expected
        @Test
        public void testExactlyOne() {
                context.checking(new Expectations() {{
                    exactly(1).of (iDao).someMetod();
                }});
               
                underTest.someServiceMethod();
        }
       
        //Passing as expected
        @Test
        public void testExactlyTwo() {
                context.checking(new Expectations() {{
                    exactly(2).of (iDao).someMetod();
                }});
               
                underTest.someServiceMethod();
        }
       
        //Passing as not expected
        @Test
        public void testExactlyAHundredMillionSuns() {
                context.checking(new Expectations() {{
                    exactly(100).of (iDao).someMetod();
                }});
               
                underTest.someServiceMethod();
        }
}


Nat Pryce wrote:
Can you create a small test that reproduces the problem?  E.g. one
that fails but should not.

--Nat

2009/5/29 Julien D <myrddin22@hotmail.com>:
>
> This problem seems pretty old. Does anyone know somthing about that ?
>
> For information I use jmock 2.5.1 and jmock-junit4 2.5.1.
>
>
> Julien D wrote:
>>
>> I'm facing the same problem.
>>
>> It seems to be a bug in JMock. See the JIRA
>> http://jira.codehaus.org/browse/JMOCK-129.
>>
>>
>> ravisankarvivek wrote:
>>>
>>> Hi,
>>> I am facing a slightly weird problem. I set an expectation as
>>>
>>> *exactly(n).of(<mock-obj>).f()*
>>>
>>> *Bug*
>>> Suppose the function f() is called 5 times; For any n < 5, the
>>> expectation
>>> fails. However, if I provide the value of n > 5, it passes for all!!
>>> Eg: *exactly(100).of(<mock-obj>).f()*
>>> The above expectation passes, even though the function f() is called only
>>> 5
>>> times!
>>>
>>> Any thoughts ?
>>>
>>> PS: The expectation is under a context and the syntax is perfectly fine.
>>> In
>>> short, the java file compiles fine!
>>>
>>> -Vivek
>>>
>>>
>>
>>
>
> --
> View this message in context: http://www.nabble.com/exactly%28n%29-function-in-JMock-tp20322373p23780192.html
> Sent from the jMock - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>    http://xircles.codehaus.org/manage_email
>
>
>



--
http://www.natpryce.com

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Re: exactly(n) function in JMock

by Julian Hall-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Julien D wrote:

> Here's my test :
>
> import org.jmock.Expectations;
> import org.jmock.Mockery;
> import org.jmock.integration.junit4.JUnit4Mockery;
> import org.junit.Before;
> import org.junit.Test;
>
> public class ExactlyTest {
>
> private interface IDao {
> void someMetod();
> }
>
> private class SomeService {
>
> private IDao dao;
>
> private void someServiceMethod() {
> //First call
> dao.someMetod();
> //Second call
> dao.someMetod();
> }
>
> public void setDao(IDao dao) {
> this.dao = dao;
> }
> }
>
> //Mock context
> private Mockery context;
>
> private SomeService underTest;
>
> private IDao iDao;
>
> @Before
> public void before() throws Exception {
> context = new JUnit4Mockery();
> underTest = new SomeService();
> iDao = context.mock(IDao.class);
>
> underTest.setDao(iDao);
> }
>
> //Failing as expected
> @Test
> public void testExactlyOne() {
> context.checking(new Expectations() {{
>    exactly(1).of (iDao).someMetod();
> }});
>
> underTest.someServiceMethod();
> }
>
> //Passing as expected
> @Test
> public void testExactlyTwo() {
> context.checking(new Expectations() {{
>    exactly(2).of (iDao).someMetod();
> }});
>
> underTest.someServiceMethod();
> }
>
> //Passing as not expected
> @Test
> public void testExactlyAHundredMillionSuns() {
> context.checking(new Expectations() {{
>    exactly(100).of (iDao).someMetod();
> }});
>
> underTest.someServiceMethod();
> }
> }
>  
Does adding an "@RunWith(JMock.class)" annotation to your test suite help?


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email



Re: exactly(n) function in JMock

by Nat Pryce :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

You have neither annotated the class with @RunWith(JMock.class) nor
explicitly called context.assertIsSatisfied() in any of your tests.

--Nat

2009/6/1 Julien D <myrddin22@...>:

>
> Here's my test :
>
> import org.jmock.Expectations;
> import org.jmock.Mockery;
> import org.jmock.integration.junit4.JUnit4Mockery;
> import org.junit.Before;
> import org.junit.Test;
>
> public class ExactlyTest {
>
>        private interface IDao {
>                void someMetod();
>        }
>
>        private class SomeService {
>
>                private IDao dao;
>
>                private void someServiceMethod() {
>                        //First call
>                        dao.someMetod();
>                        //Second call
>                        dao.someMetod();
>                }
>
>                public void setDao(IDao dao) {
>                        this.dao = dao;
>                }
>        }
>
>        //Mock context
>        private Mockery context;
>
>        private SomeService underTest;
>
>        private IDao iDao;
>
>        @Before
>        public void before() throws Exception {
>                context = new JUnit4Mockery();
>                underTest = new SomeService();
>                iDao = context.mock(IDao.class);
>
>                underTest.setDao(iDao);
>        }
>
>        //Failing as expected
>        @Test
>        public void testExactlyOne() {
>                context.checking(new Expectations() {{
>                    exactly(1).of (iDao).someMetod();
>                }});
>
>                underTest.someServiceMethod();
>        }
>
>        //Passing as expected
>        @Test
>        public void testExactlyTwo() {
>                context.checking(new Expectations() {{
>                    exactly(2).of (iDao).someMetod();
>                }});
>
>                underTest.someServiceMethod();
>        }
>
>        //Passing as not expected
>        @Test
>        public void testExactlyAHundredMillionSuns() {
>                context.checking(new Expectations() {{
>                    exactly(100).of (iDao).someMetod();
>                }});
>
>                underTest.someServiceMethod();
>        }
> }
>
>
>
> Nat Pryce wrote:
>>
>> Can you create a small test that reproduces the problem?  E.g. one
>> that fails but should not.
>>
>> --Nat
>>
>> 2009/5/29 Julien D <myrddin22@...>:
>>>
>>> This problem seems pretty old. Does anyone know somthing about that ?
>>>
>>> For information I use jmock 2.5.1 and jmock-junit4 2.5.1.
>>>
>>>
>>> Julien D wrote:
>>>>
>>>> I'm facing the same problem.
>>>>
>>>> It seems to be a bug in JMock. See the JIRA
>>>> http://jira.codehaus.org/browse/JMOCK-129.
>>>>
>>>>
>>>> ravisankarvivek wrote:
>>>>>
>>>>> Hi,
>>>>> I am facing a slightly weird problem. I set an expectation as
>>>>>
>>>>> *exactly(n).of(<mock-obj>).f()*
>>>>>
>>>>> *Bug*
>>>>> Suppose the function f() is called 5 times; For any n < 5, the
>>>>> expectation
>>>>> fails. However, if I provide the value of n > 5, it passes for all!!
>>>>> Eg: *exactly(100).of(<mock-obj>).f()*
>>>>> The above expectation passes, even though the function f() is called
>>>>> only
>>>>> 5
>>>>> times!
>>>>>
>>>>> Any thoughts ?
>>>>>
>>>>> PS: The expectation is under a context and the syntax is perfectly
>>>>> fine.
>>>>> In
>>>>> short, the java file compiles fine!
>>>>>
>>>>> -Vivek
>>>>>
>>>>>
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/exactly%28n%29-function-in-JMock-tp20322373p23780192.html
>>> Sent from the jMock - User mailing list archive at Nabble.com.
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe from this list, please visit:
>>>
>>>    http://xircles.codehaus.org/manage_email
>>>
>>>
>>>
>>
>>
>>
>> --
>> http://www.natpryce.com
>>
>> ---------------------------------------------------------------------
>> To unsubscribe from this list, please visit:
>>
>>     http://xircles.codehaus.org/manage_email
>>
>>
>>
>>
>
> --
> View this message in context: http://www.nabble.com/exactly%28n%29-function-in-JMock-tp20322373p23814629.html
> Sent from the jMock - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>    http://xircles.codehaus.org/manage_email
>
>
>



--
http://www.natpryce.com

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email



Re: exactly(n) function in JMock

by Julien D :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Indeed adding the annotation @RunWith(JMock.class) or context.assertIsSatisfied() solved my problem. Forgot this part oups.

Thanks guys

Nat Pryce wrote:
You have neither annotated the class with @RunWith(JMock.class) nor
explicitly called context.assertIsSatisfied() in any of your tests.

--Nat

2009/6/1 Julien D <myrddin22@hotmail.com>:
>
> Here's my test :
>
> import org.jmock.Expectations;
> import org.jmock.Mockery;
> import org.jmock.integration.junit4.JUnit4Mockery;
> import org.junit.Before;
> import org.junit.Test;
>
> public class ExactlyTest {
>
>        private interface IDao {
>                void someMetod();
>        }
>
>        private class SomeService {
>
>                private IDao dao;
>
>                private void someServiceMethod() {
>                        //First call
>                        dao.someMetod();
>                        //Second call
>                        dao.someMetod();
>                }
>
>                public void setDao(IDao dao) {
>                        this.dao = dao;
>                }
>        }
>
>        //Mock context
>        private Mockery context;
>
>        private SomeService underTest;
>
>        private IDao iDao;
>
>        @Before
>        public void before() throws Exception {
>                context = new JUnit4Mockery();
>                underTest = new SomeService();
>                iDao = context.mock(IDao.class);
>
>                underTest.setDao(iDao);
>        }
>
>        //Failing as expected
>        @Test
>        public void testExactlyOne() {
>                context.checking(new Expectations() {{
>                    exactly(1).of (iDao).someMetod();
>                }});
>
>                underTest.someServiceMethod();
>        }
>
>        //Passing as expected
>        @Test
>        public void testExactlyTwo() {
>                context.checking(new Expectations() {{
>                    exactly(2).of (iDao).someMetod();
>                }});
>
>                underTest.someServiceMethod();
>        }
>
>        //Passing as not expected
>        @Test
>        public void testExactlyAHundredMillionSuns() {
>                context.checking(new Expectations() {{
>                    exactly(100).of (iDao).someMetod();
>                }});
>
>                underTest.someServiceMethod();
>        }
> }
>
>
>
> Nat Pryce wrote:
>>
>> Can you create a small test that reproduces the problem?  E.g. one
>> that fails but should not.
>>
>> --Nat
>>
>> 2009/5/29 Julien D <myrddin22@hotmail.com>:
>>>
>>> This problem seems pretty old. Does anyone know somthing about that ?
>>>
>>> For information I use jmock 2.5.1 and jmock-junit4 2.5.1.
>>>
>>>
>>> Julien D wrote:
>>>>
>>>> I'm facing the same problem.
>>>>
>>>> It seems to be a bug in JMock. See the JIRA
>>>> http://jira.codehaus.org/browse/JMOCK-129.
>>>>
>>>>
>>>> ravisankarvivek wrote:
>>>>>
>>>>> Hi,
>>>>> I am facing a slightly weird problem. I set an expectation as
>>>>>
>>>>> *exactly(n).of(<mock-obj>).f()*
>>>>>
>>>>> *Bug*
>>>>> Suppose the function f() is called 5 times; For any n < 5, the
>>>>> expectation
>>>>> fails. However, if I provide the value of n > 5, it passes for all!!
>>>>> Eg: *exactly(100).of(<mock-obj>).f()*
>>>>> The above expectation passes, even though the function f() is called
>>>>> only
>>>>> 5
>>>>> times!
>>>>>
>>>>> Any thoughts ?
>>>>>
>>>>> PS: The expectation is under a context and the syntax is perfectly
>>>>> fine.
>>>>> In
>>>>> short, the java file compiles fine!
>>>>>
>>>>> -Vivek
>>>>>
>>>>>
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/exactly%28n%29-function-in-JMock-tp20322373p23780192.html
>>> Sent from the jMock - User mailing list archive at Nabble.com.
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe from this list, please visit:
>>>
>>>    http://xircles.codehaus.org/manage_email
>>>
>>>
>>>
>>
>>
>>
>> --
>> http://www.natpryce.com
>>
>> ---------------------------------------------------------------------
>> To unsubscribe from this list, please visit:
>>
>>     http://xircles.codehaus.org/manage_email
>>
>>
>>
>>
>
> --
> View this message in context: http://www.nabble.com/exactly%28n%29-function-in-JMock-tp20322373p23814629.html
> Sent from the jMock - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>    http://xircles.codehaus.org/manage_email
>
>
>



--
http://www.natpryce.com

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email