autoload를 사용하여 유사한 메서드를 제공하는 팩토리 클래스가 있습니다. 다른 개체 유형의 긴 목록이 지금은이 클래스에 대한 테스트를 작성하려는Test :: More를 사용하여 autoload에서 제공하는 메서드 테스트
Factory->objects();
Factory->object(23);
Factory->object(name => "foo");
등의 작업을 수행 할 수 있습니다. Factory
이 objects()
을 할 수있는 경우는 암시 적으로 확인하기 때문에
use Test::More;
BEGIN { use_ok 'Factory' }
my $objects = Factory->objects;
# more tests following ...
시험은 Factory->objects
으로 라인에 실패 :이 같은 시작했다. 나는 이것에 대한 몇 가지 문서를 찾을 수 없었다. 그러나 비 테스트 스크립트에서 동일한 호출을 실행하면 완벽하게 작동합니다.
테스트 방법?
업데이트 : ARGH, 나는이 모든 것을 Catalyst 응용 프로그램에서 Factory
모델 클래스의 테스트에 적용한 것으로 알고 있습니다. 글쎄,이 모델 클래스는 내 외부 모델의 Factory
클래스입니다 (실제로 테스트하려고했습니다). 모델 자체에 완벽하게 작동합니다. 적응 된 클래스에서 메소드를 테스트하는 방법을 아는 것이 좋습니다. 이 어댑터 클래스는 같은 모습입니다 :
package MyCatalystApp::Model::Factory;
use Moose;
extends 'Catalyst::Model';
extends 'Catalyst::Model::Adaptor';
__PACKAGE__->config(class => 'MyModel::Factory');
MyModel::Factory
이 원래의 질문에 Factory
와 같은 클래스입니다. 단순화를 위해 원래의 질문에서 촉매와 모델의 차이점을 건너 뛰었습니다.
참고로, 나는 작동 할 것이라고 확신하지만 Test :: More의 제한적이지만 사소하지 않은 지식을 기반으로, useLok이 AutoLoader와 잘 맞지 않는 이유를 알아낼 수 없다. 더 많은 단서를 가진 사람 (Schwern?)이 좀 더 명확한 대답을 추가 할 수 있기를 바랍니다. – DVK
테스트를 거쳤으며 제대로 작동하지 않았습니다. ATM 문제를 재현하기 위해 간단한 예제 코드를 작성하려고합니다. –
이제 테스트가 진행되고 조언이 전혀 도움이되지 않습니다. –