Вы называете doPost и doGet методы вручную в модульных тестах? Раз так можно переопределить методы HttpServletRequest для обеспечения фиктивных объектов.
myServlet.doGet(new HttpServletRequestWrapper() {
public HttpSession getSession() {
return mockSession;
}
...
}
HttpServletRequestWrapper является классом Java удобства. Я предлагаю, чтобы Вы создали служебный метод в своих модульных тестах для создания ложных запросов HTTP:
public void testSomething() {
myServlet.doGet(createMockRequest(), createMockResponse());
}
protected HttpServletRequest createMockRequest() {
HttpServletRequest request = new HttpServletRequestWrapper() {
//overrided methods
}
}
еще лучше поместить ложные методы создания в основной суперкласс сервлета и сделать все модульные тесты сервлетов для расширения его.
std::queue
не имеет никакого случайного доступа элемента, это - адаптер контейнера последовательности значением по умолчанию с помощью std::dequeue
. Однако это - достойное замечание, что при использовании компилятора Microsoft cl
можно использовать ._Get_container()
метод, который позволяет Вам получить доступ к базовому контейнеру и таким образом его отдельным элементам, как так:
std::deque<int> dq;
std::queue<int, decltype(dq)> q;
q.push(23);
q.push(90);
q.push(38794);
q.push(7);
q.push(0);
q.push(2);
q.push(13);
q.push(24323);
q.push(0);
q.push(1234);
for (int i = 0; i < q.size(); i++)
{
std::cout << q._Get_container()[i] << '\n';
}
hth.