Есть ли способ смоделировать конструкцию объекта, используя JMock в Java?
Например, если у меня есть такой метод:
public Object createObject(String objectType) {
if(objectType.equals("Integer") {
return new Integer();
} else if (objectType.equals("String") {
return new String();
}
}
... есть ли способ смоделировать ожидание конструкции объекта в тестовом методе?
Я бы хотел иметь возможность рассчитывать на то, что некоторые конструкторы вызываются, вместо того, чтобы иметь дополнительный бит кода для проверки типа (так как это не всегда будет настолько запутанно и просто, как в моем примере).
Так что вместо:
assertTrue(a.createObject() instanceof Integer);
Я мог бы ожидать, что будет вызван определенный конструктор. Просто чтобы сделать его немного чище и выразить то, что на самом деле тестируется, более читабельным способом.
Пожалуйста, извините за простой пример, реальная проблема, над которой я работаю, немного сложнее, но ожидание упростит ее.
Для получения дополнительной информации:
У меня есть простой фабричный метод, который создает объекты-оболочки. Обертываемые объекты могут требовать параметров, которые трудно получить в тестовом классе (это уже существующий код), поэтому их сложно построить.
Возможно, ближе к тому, что я на самом деле ищу, это: есть ли способ смоделировать весь класс (используя CGLib) одним махом, без указания каждого метода для заглушения?
То есть макет оборачивается в конструкторе, поэтому очевидно, что к нему можно вызывать методы, способен ли JMock динамически выводить из строя каждый метод?
Я думаю, нет, так как это было бы довольно сложно. Но знать, что я лаю не на том дереве, тоже ценно: -)