I can see in the dependency injection video , you say the object cannot be
mocked since it's created with that class as it beats the point of unit
testing.

Now lets say,

Person class is changed to support dependency injection (no spring
framework)

Person.java

public class Person(){

Address address
   public void Person (Address address){
       this.address = address;
}

public String getPersonAddressInfo(){
return address.getInfo();

}

}

I am assuming this should work, meaning we should be able to Mock the
Address obejct ? But lets say the Person object is created in a Request
Handler class. While testing RequestHandler we wont be able to mock the
objects right ? I hope you got my question. How do we handle this ?


RequestHandler.java

public void process (Person person){
Address address = new Address;
person = new Person (address);
person.getPersonAddressInfo();
}


Thanks,
Vikram

On Mon, Feb 13, 2017 at 6:58 PM, VikramSrinivasan Venkatakrishnan <
[email protected]> wrote:

> Please assist with my below question.
>
> Let's say we are refactoring the Person class.
>
> Before Person class:
>
> Person.java has a method ,
>
> public String getPersonAddressInfo(){
> Address address = new Address ();
> return address.getInfo();
>
> }
>
> After refactor Person class:
>
> @Autowired
> Address address;
>
> public String getPersonAddressInfo(){
> return address.getInfo();
>
> }
>
> Now , if we write a junit as below, mocking the address object,
>
> @Mock
> Address address;
>
> @Inject Mock
> Person person;
>
>
> @setup{ required code}
>
> @Test public void
> should_return_adress_info_as_something(){
>     Mockito.when(address.getInfo()),thenReturn("Westbrough,MA");
>     assertThat(person.getPersonAddressInfo, equalTo("Westborough,MA"));
> }
>
> The method should_return_adress_info_as_something works only for the
> After class and not Before class. Why is this the case ? Is it because we
> are creating a new object in the Before Person Class ?
>
> Now, in the After class example that was given, let's say my prod app is
> not on spring framework , how would i get an instance of my address object ?
>
> Kindly assist.
>
> Thanks,
> Vikram
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"JPassion.com: Java Programming" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
Visit this group at https://groups.google.com/group/jpassion_java.
For more options, visit https://groups.google.com/d/optout.

Reply via email to