Skip to content
Advertisement

Junit Testing JNDI InitialContext outside the application server

JavaScript

Please help me to mock the above code.

Hi Tom Anderson

I tried the below code

JavaScript

But its giving error as:

JavaScript

Please help me to test the code i just want connection from JNDI datasource

Advertisement

Answer

The orthodox thing to do here would be to change you code so that the Context is injected into it (by a dependency injection framework, or manually). Then, you simply pass in a mock in your unit test.

If you can’t do this, and your code must create the IntialContext itself, then you will need to set up a fake JNDI implementation into which you can inject mocks. If you search the web for in-memory JNDI implementation or mock JNDI implementation, you will find various options, or you could write one yourself. Basically, you will need an implementation of InitialContextFactory which simply returns a suitable mock, which you then select by setting the java.naming.factory.initial system property.

I had a crack at writing the necessary classes. Here you go:

JavaScript

Use as follows:

JavaScript
User contributions licensed under: CC BY-SA
3 People found this is helpful
Advertisement