Как я могу использовать объекты OCMock с кодом, который называет isKindOfClass?

control_click не использует курсор мыши.

mouse_click использует курсор мыши.

control_click аргументы из файла справки AutoItX.chm :

"title", "text", "controlID" [, button [, clicks [, x [, y ]]]]

, из которых имена необязательных аргументов совпадают с **kwargs. [ 1122]

Аргументы PyAutoIt из библиотеки для control_click:

"title", "control" [, **kwargs]

, где **kwargs - необязательные именованные аргументы.

**kwargs принимает именованные аргументы. то есть text="some text in the window"

Чтобы щелкнуть в элементе управления, вы можете использовать то есть:

autoit.control_click("[CLASS:Notepad]", "Edit1", x=1097, y=832)

В библиотеке код, который вы разместили, имена для **kwargs:

text = kwargs.get("text", "")
button = kwargs.get("button", "left")
clicks = kwargs.get("clicks", 1)
x = kwargs.get("x", INTDEFAULT)
y = kwargs.get("y", INTDEFAULT)

Он хранится в виде словаря, а метод .get используется для получения значения. Если вы передадите text="some text in the window", то text равно some text in the window, иначе будет равна пустой строке, представленной в библиотеке как "", что является значением по умолчанию.

7
задан iDeveloper 5 April 2016 в 06:08
поделиться

1 ответ

Общее правило - это, если Вы звоните isKindOfClass: и Вы не передаете один из plist классов (например, NSString или NSNumber), Вы Делаете Его Неправильно.

Если метод делает две или больше разных вещи, в зависимости от которых классифицируют его аргумент, разорвите его в несколько методов и протестируйте каждый метод отдельно.

Если метод делает только одну вещь, но должен взаимодействовать с объектом по-другому, в зависимости от которого класса это, то:

  1. Сделайте протокол. (Протоколы в Obj-C называют “интерфейсами” на некоторых других языках OO, таких как Java.)
  2. Сделайте много классов, которым все приспосабливают протоколу. При необходимости используйте категории для добавления необходимых методов снаружи.
  3. Сделайте метод при тестовой проверке на соответствие к протоколу вместо тока isKindOfClass: проверить.
  4. Заставьте метод под тестом использовать методы в протоколе.
8
ответ дан 7 December 2019 в 01:27
поделиться
Другие вопросы по тегам:

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