Results 1 to 2 of 2
- 09-12-2012, 01:23 AM #1
Senior Member
- Join Date
- Nov 2011
- Location
- Turkey
- Posts
- 378
- Blog Entries
- 24
- Rep Power
- 2
Please help me with Mock Objects.
Please do not close this thread.
My code:
I am trying to test the shoot() method. Since it generated a random integer every time, I am trying something like this:Java Code:package com.tugay.learningjunit; public class MyClass { RandomNumberGenerator randomNumberGenerator = new RandomNumberGenerator(); public int shoot(){ int someNumber = randomNumberGenerator.generateRandomNumber(); return someNumber*2; } } package com.tugay.learningjunit; import java.util.Random; public class RandomNumberGenerator { public int generateRandomNumber(){ return new Random().nextInt(15); } }
package com.tugay.tests;
import junit.framework.Assert;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import static org.mockito.Mockito.when;
import com.tugay.learningjunit.MyClass;
import com.tugay.learningjunit.RandomNumberGenerator;
}Java Code:public class MyClassTester { @InjectMocks private MyClass myObject = new MyClass(); @Mock private RandomNumberGenerator randomNumberGenerator; @Test public void testShoot() { when(randomNumberGenerator.generateRandomNumber()).thenReturn(3); try { int resultingNumber = myObject.shoot(); Assert.assertEquals(6, resultingNumber); } catch (Exception e) { }
}
But I am getting an error saying:
java.lang.NullPointerException
at com.tugay.tests.MyClassTester.testShoot(MyClassTes ter.java:24)
When I try with:
then I get:Java Code:private RandomNumberGenerator randomNumberGenerator = new RandomNumberGenerator();
org.mockito.exceptions.misusing.MissingMethodInvoc ationException:
when() requires an argument which has to be 'a method call on a mock'.
For example:
when(mock.getArticles()).thenReturn(articles);
Also, this error might show up because:
1. you stub either of: final/private/equals()/hashCode() methods.
Those methods *cannot* be stubbed/verified.
2. inside when() you don't call method on mock but on some other object.
3. the parent of the mocked class is not public.
It is a limitation of the mock engine.
How can I force to return generateRandomNumber() method to return 3?
Please help. Thank you.
- 09-12-2012, 01:27 AM #2
Senior Member
- Join Date
- Nov 2011
- Location
- Turkey
- Posts
- 378
- Blog Entries
- 24
- Rep Power
- 2
Similar Threads
-
develop mock ups
By karthikeyan_raju in forum NetBeansReplies: 0Last Post: 10-19-2009, 03:58 PM -
Mock exams for SCWCD 5
By Enthuware in forum Java SoftwareReplies: 3Last Post: 04-24-2009, 03:14 PM -
SCBCD 5.0 Mock Exam Questions
By kks_krishna in forum Reviews / AdvertisingReplies: 0Last Post: 04-02-2008, 08:26 AM -
800 Mock Questions for SCJP 1.6
By Enthuware in forum Java SoftwareReplies: 2Last Post: 01-16-2008, 11:57 AM


LinkBack URL
About LinkBacks
Reply With Quote
Bookmarks