Access c++ queue elements like an array

Вы называете 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   
   }
}

еще лучше поместить ложные методы создания в основной суперкласс сервлета и сделать все модульные тесты сервлетов для расширения его.

15
задан Doug T. 4 May 2011 в 01:44
поделиться

1 ответ

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.

0
ответ дан 1 December 2019 в 00:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: