Почему утверждение терпит неудачу под RUN, но не под DEBUG? - PullRequest
0 голосов
/ 20 декабря 2018

Очень странное поведение в юнит-тесте.Код находится на другом компьютере, поэтому я кратко опишу его основной аспект.

Проблема заключается в

  • Когда я проверяю как RUN, тест проверяет два объекта на 10 свойств.не в состоянии сказать, что объект содержит 19 свойств.
  • Когда я проверяю как DEBUG, тест проходит для обоих объектов, у каждого из которых есть 10 свойств.

Как, черт возьми, это происходит??

    @Test
    public void testConverterTwoObjects(){
      InputStream inFile = this.getClass().getResourceAsStream(TEST_TWO_OBJECTS);

      try{
          List<MyObject> objs = getConvertedObjects(inFile);
          MyObject mob1 = objs.get(0);
          MyObject mob2 = objs.get(1);

          assertionCheck(mob1);
          assertionCheckTwo(mob2);
      } catch(Exception e){
        // logging
      } finally {
        try{
          inFile.close();
        } catch(IOException ioe){
          // logging
        }
      }
    }

    private void assertionCheck(MyObject t){
      assertNotNull(t);
      assertEquals(10, t.getPropertyCount());
      assertEquals("ALPHA", t.getType());
      ...
    }

    private void assertionCheckTwo(MyObject t){
      assertNotNull(t);
      assertEquals(10, t.getPropertyCount());
      assertEquals("BRAVO", t.getType());
      ...
    }

1 Ответ

0 голосов
/ 20 декабря 2018

У меня была похожая проблема в PyCharm (Intellij IDEA для Python).После поиска часов выяснилось, что поведение сборщика мусора в режиме отладки отличается от режима запуска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...