Метод plot
возвращает объекты, содержащие информацию о каждой строке в графике в виде списка. В python вы можете развернуть элементы списка с запятой. Например, если вы построили две строки, вы должны сделать:
line1, line2 = plt.plot(x,y,'-',x,z,':')
Где line1
будет соответствовать x,y
, а строка2 соответствует x,z
. В вашем примере есть только одна строка, поэтому вам нужна запятая, чтобы сообщить ей о расширении списка из 1 элемента. То, что у вас есть, эквивалентно
line = plt.plot(x,y,'-')[0]
или
line = ply.plot(x,y,'-')
line = line[0]
Ваш код должен работать, если вы опустите запятую, только потому, что вы не используете line
. В вашем простом примере plt.plot(x,y,'-')
будет достаточно.
Я лично создал бы тест для класса А, в вашем тесте использовал бы фиктивную реализацию, а затем протестировал бы вашу функцию. Таким образом, проверка не требуется для каждой реализации.
Я согласен с другим ответом в том, что вы должны написать Test для класса A
в его пакете, потому что вы тестируете функциональность A
, а не AImp
, но если вы действительно хотите получить доступ Защищенные (или даже частные) методы вы можете сделать это следующим образом:
@Test
public void testProtectedMethodFromSuperClass(){
AImp aimp = new AImp();
Method get10IntMethod = AImp.class.getDeclaredMethod("get10Int");
get10IntMethod.setAccessible(true);
List<Integer> result = (List<Integer>) get10IntMethod.invoke(aimp);
assertEquals(result.size(), 10);
}
И если вы хотите вызвать метод с аргументами (например, otherMethod(int)
), вы должны передать типы аргументов в getDeclaredMethod()
как это: getDeclaredMethod("otherMethod", int.class)
и аргументы для вызова: method.invoke(instance, 5)
.