Как дразнить веб-сервер за поблочное тестирование в Java?

Проблема оказалась связана с другими виртуальными функциями внутри исходных классов, которые были в моем коде. Код выше работает без проблем. Во время разработки я столкнулся с другими проблемами, поэтому я отправил ей новый код, который решает все эти проблемы с комментариями, упомянутыми рядом с ними:

// Top Level (Level 1)

class Abstract_Class_A
{
     ~Abstract_Class_A (); // To solve source type is not polymorphic” when trying to use dynamic_cast
};

class Abstract_Class_B: virtual public Abstract_Class_A
{
  public:
  uint8_t type;
};

class Abstract_Class_C: virtual public Abstract_Class_A
{
};

// Second Level (Level 2)
class Impl_Class_A : virtual public Abstract_Class_A
{
  public:
  double angle;
};

class Impl_Class_B: virtual public Abstract_Class_B, virtual public Impl_Class_A // Missing second virtual
{
};

class Impl_Class_C: virtual public Abstract_Class_C, virtual public Impl_Class_A // Missing second virtual
{
};

void test()
{
  Impl_Class_B* test = new Impl_Class_B ();
}

Примечания:

[118 ]

  • С этим типом парадигмы наследования вы не можете использовать static_cast, вместо этого следует использовать dynamic_cast. Проверьте следующее обсуждение .
  • При использовании dynamic_cast вы должны добавить виртуальный деструктор в верхний класс. Проверьте следующее обсуждение об этом.
    1. 40
      задан Sled 21 August 2013 в 18:45
      поделиться

      3 ответа

      Попробуйте Простой ( Знаток ) его очень легкое для встраивания в модульный тест. Возьмите RoundTripTest и примеры такой как PostTest, записанный с Простым. Обеспечивает пример того, как встроить сервер в Ваш тестовый сценарий.

      Также Простой намного легче и быстрее, чем Причал, без зависимостей. Таким образом, Вы не должны будете добавлять несколько файлов банки на свой путь к классу. И при этом Вы не должны будете быть обеспокоены в WEB-INF/web.xml или никакие другие артефакты.

      13
      ответ дан Jedd Hopkins 27 November 2019 в 01:20
      поделиться

      Вы пытаетесь использовать , насмешка или встроила веб-сервер?

      Для насмешка веб-сервер, попытайтесь использовать Mockito или что-то подобное, и просто дразните HttpServletRequest и HttpServletResponse объекты как:

      MyServlet servlet = new MyServlet();
      HttpServletRequest mockRequest = mock(HttpServletRequest.class);
      HttpServletResponse mockResponse = mock(HttpServletResponse.class);
      
      StringWriter out = new StringWriter();
      PrintWriter printOut = new PrintWriter(out);
      when(mockResponse.getWriter()).thenReturn(printOut);
      
      servlet.doGet(mockRequest, mockResponse);
      
      verify(mockResponse).setStatus(200);
      assertEquals("my content", out.toString());
      

      Для встроил веб-сервер, Вы могли использовать Причал , который Вы можете использование в тестах .

      20
      ответ дан rogerdpack 27 November 2019 в 01:20
      поделиться

      Попытайтесь использовать Гагатовый веб-сервер .

      3
      ответ дан Sled 27 November 2019 в 01:20
      поделиться
      Другие вопросы по тегам:

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