Create an account

Very important

  • To access the important data of the forums, you must be active in each forum and especially in the leaks and database leaks section, send data and after sending the data and activity, data and important content will be opened and visible for you.
  • You will only see chat messages from people who are at or below your level.
  • More than 500,000 database leaks and millions of account leaks are waiting for you, so access and view with more activity.
  • Many important data are inactive and inaccessible for you, so open them with activity. (This will be done automatically)


Thread Rating:
  • 524 Vote(s) - 3.42 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Injecting Mockito mocks into a Spring bean

#21
Given:

@Service
public class MyService {
@Autowired
private MyDAO myDAO;

// etc
}

You can have the class that is being tested loaded via autowiring, mock the dependency with Mockito, and then use Spring's ReflectionTestUtils to inject the mock into the class being tested.

@ContextConfiguration(classes = { MvcConfiguration.class })
@RunWith(SpringJUnit4ClassRunner.class)
public class MyServiceTest {
@Autowired
private MyService myService;

private MyDAO myDAOMock;

@Before
public void before() {
myDAOMock = Mockito.mock(MyDAO.class);
ReflectionTestUtils.setField(myService, "myDAO", myDAOMock);
}

// etc
}

Please note that before Spring 4.3.1, this method won't work with services behind a proxy (annotated with `@Transactional`, or `Cacheable`, for example). This has been fixed by [SPR-14050][1].

For earlier versions, a solution is to unwrap the proxy, as described there:

[To see links please register here]

(which is what `ReflectionTestUtils.setField` does by default now)

[1]:

[To see links please register here]

Reply



Forum Jump:


Users browsing this thread:
1 Guest(s)

©0Day  2016 - 2023 | All Rights Reserved.  Made with    for the community. Connected through