private static List<TestedObject> parseExpectedTestedObject(String testDescription) {
    String[] testObjectData =
        testDescription.substring(testDescription.indexOf("// TESTED_OBJECT_KIND")).split("\n\n");
    ArrayList<TestedObject> objects = new ArrayList<TestedObject>();

    for (String testData : testObjectData) {
      if (testData.isEmpty()) continue;

      TestedObject testObject = new TestedObject();
      testObject.textData = testData;
      List<String> testedObjects = findListWithPrefixes(testData, "// TESTED_OBJECTS: ");
      assertTrue("Cannot find TESTED_OBJECTS instruction", !testedObjects.isEmpty());
      testObject.containingClass = testedObjects.get(0);
      if (testedObjects.size() == 1) {
        testObject.name = testedObjects.get(0);
      } else if (testedObjects.size() == 2) {
        testObject.name = testedObjects.get(1);
      } else {
        throw new IllegalArgumentException(
            "TESTED_OBJECTS instruction must contain one (for class) or two (for function and property) values");
      }

      testObject.kind = findStringWithPrefixes(testData, "// TESTED_OBJECT_KIND: ");
      List<String> isFullName =
          findListWithPrefixes(testData, "// IS_FULL_CONTAINING_CLASS_NAME: ");
      if (isFullName.size() == 1) {
        testObject.isFullContainingClassName = Boolean.parseBoolean(isFullName.get(0));
      }
      objects.add(testObject);
    }
    assertTrue("Test description not present!", !objects.isEmpty());
    return objects;
  }