Вы, кажется, смешиваете сборки x86 и x64.
Если вы хотите создать свое приложение с использованием x64-компилятора, вам нужно получить готовые двоичные файлы для x64 как для Box2D, так и для SFML.
Если вы хотите создать свое приложение с использованием компилятора x86, вам понадобятся предварительно подготовленные двоичные файлы для x86 как для Box2D, так и для SFML.
Но поскольку я не вижу готовых двоичных файлов для Box2D, вы, вероятно, скомпилировали свои собственные двоичные файлы. Тогда вам просто нужно убедиться, что вы выбрали правильный компилятор при сборке Box2D.
Вы можете использовать AnnotationMethodHandlerAdapter и его метод handle
программно. Это разрешит метод для данного запроса и выполнит его. К сожалению, это немного косвенно. На самом деле в AMHA есть частный класс ServletHandlerMethodResolver
, который отвечает только за разрешение метода для данного запроса. Я только что подал запрос на улучшение по этой теме, так как я бы тоже хотел увидеть это возможным.
А пока вы можете использовать, например, EasyMock , чтобы создать макет вашего класса контроллера, ожидайте, что данный метод будет вызван, и передайте этот макет в дескриптор
.
Контроллер:
@Controller
public class MyController {
@RequestMapping("/users")
public void foo(HttpServletResponse response) {
// your controller code
}
}
Тест:
public class RequestMappingTest {
private MockHttpServletRequest request;
private MockHttpServletResponse response;
private MyController controller;
private AnnotationMethodHandlerAdapter adapter;
@Before
public void setUp() {
controller = EasyMock.createNiceMock(MyController.class);
adapter = new AnnotationMethodHandlerAdapter();
request = new MockHttpServletRequest();
response = new MockHttpServletResponse();
}
@Test
public void testname() throws Exception {
request.setRequestURI("/users");
controller.foo(response);
EasyMock.expectLastCall().once();
EasyMock.replay(controller);
adapter.handle(request, response, controller);
EasyMock.verify(controller);
}
}
С уважением, Олли
Решение Олли охватывает тестирование конкретного примера аннотации, но что насчет более широкого вопроса о том, как тестировать все остальные различные аннотации Spring MVC. Мой подход (который может быть легко распространен на другие аннотации) был бы следующим
import static org.springframework.test.web.ModelAndViewAssert.*;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({/* include live config here
e.g. "file:web/WEB-INF/application-context.xml",
"file:web/WEB-INF/dispatcher-servlet.xml" */})
public class MyControllerIntegrationTest {
@Inject
private ApplicationContext applicationContext;
private MockHttpServletRequest request;
private MockHttpServletResponse response;
private HandlerAdapter handlerAdapter;
private MyController controller;
@Before
public void setUp() {
request = new MockHttpServletRequest();
response = new MockHttpServletResponse();
handlerAdapter = applicationContext.getBean(HandlerAdapter.class);
// I could get the controller from the context here
controller = new MyController();
}
@Test
public void testFoo() throws Exception {
request.setRequestURI("/users");
final ModelAndView mav = handlerAdapter.handle(request, response,
controller);
assertViewName(mav, null);
assertAndReturnModelAttributeOfType(mav, "image", Image.class);
}
}
Я также написал запись в блоге об интеграционном тестировании аннотаций Spring MVC.