Как получить свойства знатока в тесте JUnit?

Что должно произойти, так это то, что «именованные элементы» добавляются как кажущиеся свойства объекта document. Это действительно плохая идея, так как позволяет именам элементов сталкиваться с реальными свойствами document.

IE затруднил ситуацию, добавив именованные элементы в качестве свойств объекта window. Это вдвойне плохо, потому что теперь вам нужно избегать именования ваших элементов после того, как захочет использовать какой-либо из объектов document или window, которые вы (или любой другой библиотечный код в своем проекте) захотите использовать.

Это также означает, что эти элементы видны как глобальные переменные. К счастью, в этом случае любые реальные глобальные объявления var или function в вашем коду затушевывают их, поэтому вам не нужно так беспокоиться об именах здесь, но если вы попытаетесь выполнить присвоение глобальной переменной с конфликтом имя и вы забудете объявить его var, вы получите сообщение об ошибке в IE, поскольку оно пытается присвоить значение самому элементу.

Обычно считается, что неправильная практика пропускает var, так как а также полагаться на названные элементы, которые видны на window или в виде глобальных. Придерживайтесь document.getElementById, который более широко поддерживается и менее неоднозначен. Вы можете написать тривиальную функцию обертки с более коротким именем, если вам не нравится ввод текста. В любом случае, нет смысла использовать кеш-поиск с id-элементом, поскольку браузеры обычно оптимизируют вызов getElementById, чтобы использовать быстрый поиск; все, что вы получаете, это проблемы, когда элементы меняются id или добавляются / удаляются из документа.

Opera скопировала IE, затем присоединился WebKit, и теперь обе ранее нестандартная практика размещения именованных элементов в document, и ранее применявшаяся только для IE практика помещать их в window, является стандартизированной HTML5, подход которой заключается в том, чтобы документировать и стандартизировать каждую ужасную практику, причиненную на нас авторами браузеров, делая их частью сети навсегда. Таким образом, Firefox 4 также будет поддерживать это.

Что такое «названные элементы»? Все, что имеет id, и все, что используется name для целей идентификации, то есть формы, изображения, привязки и несколько других, но не другие несвязанные экземпляры атрибута name, например, имена в полях ввода формы, имена параметров в или тип метаданных в . «Идентификация» name s - это те, которые следует избегать в пользу id.

21
задан Rich Seller 30 July 2009 в 22:46
поделиться

1 ответ

У Вас есть 2 опции:

1) Передача путь к файлу к Вашему тесту через системное свойство ( документы )

В Вашем англичанине Вы могли сделать что-то как:

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.4.2</version>
        <configuration>
          <systemProperties>
            <property>
              <name>filePath</name>
              <value>/path/to/the/file</value>
            </property>
          </systemProperties>
        </configuration>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

Затем в Вашем тесте можно сделать:

System.getProperty("filePath");

2) Вставленный файл src/test/resources под тем же пакетом как Ваш тестовый класс. Затем можно добраться до файла с помощью Class.getResourceAsStream (Представьте имя файла в виде строки) ( документы ).

я настоятельно рекомендовал бы опцию 2 по опции 1. Передающими вещами к Вашим тестам через системные свойства является очень грязный IMO. Это связывает Ваши тесты излишне с исполнителем тестов и вызовет головные боли в будущем. Загрузка файла от пути к классу является способом пойти, и вот почему у знатока есть понятие каталога с ресурсами.

27
ответ дан 29 November 2019 в 21:35
поделиться
Другие вопросы по тегам:

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