У меня есть небольшая проблема, чтобы высмеять мое соединение jndi в службе отдыха. Я использую jersey 1.9 для создания веб-сервиса для отдыха и mockito для моих тестов.Mock jndi connection
Мой тестовый код:
//Mock DATA
db = Mockito.mock(Transactions.class);
Comp comp = Mockito.mock(Comp.class);
Mockito.when(db.createConnection()).thenReturn(connection);
Mockito.when(db.getComponent(connection, comp)).thenReturn(new Comp());
Mockito.doNothing().when(connection).commit();
Mockito.doNothing().when(connection).close();
//Get class at the context
configs = ConfigDatabaseTests.getInstance();
configs.setUpClass();
configs.bindNewSubContext("java:/comp/env/rest");
configs.bindNewInstance(new WSCompRest(db), "java:/comp/env/rest/ws");
webService = (WSCompRest) configs.getTheInstance("java:/comp/env/rest/ws");
String jsonComp = "{\n"
+ " \"comp\": {\n"
+ " \"model\": \"XPTOXXX\",\n"
+ " \"id\": \"TTTT\",\n"
+ " \"type\": \"XXXXXX\"\n"
+ " }\n"
+ "}";
//END Mock DATA
webService.createComp(jsonComp);
На данный момент у меня нет anyproblem, то WebService называется, и я могу отлаживать в метод.
@POST
@Path("/create")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response createComp(String comp) throws AppException {
Response response = null;
RequestHelper rqHelper = new RequestHelper();
Comp com = new Comp();
try {
//Check parameters
if (!rqHelper.validParameters(comp)) {
throw new AppException(Response.Status.BAD_REQUEST.getStatusCode(), "Invalid json!!");
}
...
Connection conn = db.createConnection();
try {
//Get the type
//WHYYYYYYYYY?
comp = db.getComponent(conn, comp);
...
Я не понимаю, почему метод GetComponent (...) возвращает нулевой экземпляр ... Кто-нибудь знает решение для этого? Я проверил весь метод Transaction.class, используя эту стратегию https://blogs.oracle.com/randystuph/entry/injecting_jndi_datasources_for_junit, но мне нравится протестировать код на высоком уровне.
Если я использовал весну, было легче, чем майка, чтобы проверить обслуживание? Я спрашиваю об этом, потому что весной можно вставить jndi с помощью xml-файла.
Спасибо всем и простите мой плохой английский :( Привет
спасибо, человек ... это работает;). У вас есть идея, которая может назвать реальный метод getComponent? Хорошо, что я получаю реальную ценность. – Nbento