Ich weiß, dass das seltsam klingt, dieses "ich habe nichts gemacht und es geht nicht mehr". Da das wohl nicht sein kann, kann ich nur sagen, ich weiß nicht, was sich in den Tagen geändert hat, seit ich das Projekt das letzte Mal angefasst habe.
Ich habe eine Klasse [c]RuleReader[/c] und darin befindet sich eine private Methode
Und ich habe eine Testklasse [c]RuleReaderTest[/c] wo ich u.a. auch diese private Methode teste.
[java=46] private String callPrivateMethodDetermineRuleTypeFromFileName(
RuleReader reader) {
String ergebnis = null;
try {
Class<?> clazz = RuleReader.class;
Method method = clazz.getDeclaredMethod(
"determineRuleTypeFromFileName", new Class[]{});
method.setAccessible(true);
ergebnis = (String) method.invoke(reader, new Object[]{});
} catch (Exception e) {
e.printStackTrace();
}
return ergebnis;
}[/code]
Das hat neulich auch definitiv funktioniert. Nun schlagen die Tests fehl. Wenn ich hinein debuge, so hat das Objekt [c]clazz[/c] tatsächlich keine Methoden und die selbst gefangene Exception lautet
Was absolut Sinn macht, wenn clazz keinerlei Methoden hat. Ich verstehe nur nicht, warum. Zumal ich das ganze Projekt nicht wissentlich angefasst habe in der Zwischenzeit.
Hat jemand eine Idee, was da das Problem sein könnte?
Ich habe eine Klasse [c]RuleReader[/c] und darin befindet sich eine private Methode
Java:
public class RuleReader {
...
private String determineRuleTypeFromFileName(String fileName) {
...
}
Und ich habe eine Testklasse [c]RuleReaderTest[/c] wo ich u.a. auch diese private Methode teste.
[java=46] private String callPrivateMethodDetermineRuleTypeFromFileName(
RuleReader reader) {
String ergebnis = null;
try {
Class<?> clazz = RuleReader.class;
Method method = clazz.getDeclaredMethod(
"determineRuleTypeFromFileName", new Class[]{});
method.setAccessible(true);
ergebnis = (String) method.invoke(reader, new Object[]{});
} catch (Exception e) {
e.printStackTrace();
}
return ergebnis;
}[/code]
Das hat neulich auch definitiv funktioniert. Nun schlagen die Tests fehl. Wenn ich hinein debuge, so hat das Objekt [c]clazz[/c] tatsächlich keine Methoden und die selbst gefangene Exception lautet
Code:
java.lang.NoSuchMethodException: rules.RuleReader.determineRuleTypeFromFileName()
at java.lang.Class.getDeclaredMethod(Unknown Source)
at rules.RuleReaderTest.callPrivateMethodDetermineRuleTypeFromFileName(RuleReaderTest.java:51)
at rules.RuleReaderTest.determineRuleTypeFromFileName1(RuleReaderTest.java:67)
...
Was absolut Sinn macht, wenn clazz keinerlei Methoden hat. Ich verstehe nur nicht, warum. Zumal ich das ganze Projekt nicht wissentlich angefasst habe in der Zwischenzeit.
Hat jemand eine Idee, was da das Problem sein könnte?
Zuletzt bearbeitet: