У меня есть фабричный класс, который предоставляет несколько похожих методов с помощью автозагрузки.Для более длинного списка различных типов объектов он может делать такие вещи, как
Factory->objects();
Factory->object(23);
Factory->object(name => "foo");
Теперь я хочу написать тест для этого класса.Я начал с чего-то вроде этого:
use Test::More;
BEGIN { use_ok 'Factory' }
my $objects = Factory->objects;
# more tests following ...
Тест не проходит в строке с Factory->objects
, поскольку он неявно проверяет, может ли Factory
сделать objects()
.Я не мог найти документацию для этого.Но если я выполняю тот же вызов в не тестируемом скрипте, он работает отлично.
Как это проверить?
Обновление: ARGH, я только что узналпоместите все это в тест для класса модели Factory
в моем приложении Catalyst.Ну, этот класс модели - это Адаптер для класса Factory
в моей внешней модели (которую я на самом деле намеревался протестировать).Работа отлично подходит для самой модели.Еще хотелось бы узнать, как тестировать метод из адаптированного класса.Вот как выглядит класс адаптера:
package MyCatalystApp::Model::Factory;
use Moose;
extends 'Catalyst::Model';
extends 'Catalyst::Model::Adaptor';
__PACKAGE__->config(class => 'MyModel::Factory');
MyModel::Factory
- это тот же класс, что и Factory
в исходном вопросе.Я упустил разницу между Catalyst и моделью в первоначальном вопросе для упрощения.