Thread Testen und dabei eine Mock Klasse verwenden. (2 answers)
Opened by Gast at 2008-09-21 18:15

Spieler
 2008-09-21 23:28
#114820 #114820
User since
2007-09-24
70 Artikel
BenutzerIn
[default_avatar]
Hallo,

du kannst perl ein anderes Modul zum Testen unterschieben:

Extern.pm:
Code: (dl )
1
2
3
4
5
6
package Extern;

sub testsub{
print "Extern::testsub\n";
}
1;

ExternMock.pm:
Code: (dl )
1
2
3
4
5
6
7
BEGIN{ $INC{'Extern.pm'}= __FILE__};
package Extern;

sub testsub{
print "MockExtern::testsub\n";
}
1;

MyModule.pm:
Code: (dl )
1
2
3
4
5
6
7
8
package MyModule;
use Extern;

sub mymodule_do_work{
print "during my work I will call 'Extern->testsub':\n";
Extern->testsub;
}
1;

und mymodule_test.pl:
Code: (dl )
1
2
3
4
5
6
7
8
use strict;
use warnings;

use ExternMock; # oder auch nicht...
use MyModule;

#Extern->testsub;
MyModule::mymodule_do_work(); #soll das natürlich heissen


Dann muss aber ExternMock.pm alles implementieren, was du brauchst. Durch die %INC Manipulation wird Extern.pm nicht mehr geladen.
Ich weiss nicht, ob man es im Ernstfall so machen würde. Ich hab so etwas noch nie gebraucht...

Grüße, Christoph

View full thread Testen und dabei eine Mock Klasse verwenden.