Je voudrais tester les fonctions de test à partir d'un seul fichier Lua script, par exemple script.lua
. Le script ressemble à quelque chose comme suit:Comment puis-je tester les fonctions dans un seul fichier Lua script?
-- some fields from gvsp dissector which shall be post processed in custom dissector
gvsp_field0_f = Field.new("gvsp.<field0-name>")
gvsp_field1_f = Field.new("gvsp.<field1-name>")
-- custom protocol declaration
custom_protocol = Proto("custom","Custom Postdissector")
-- custom protocol field declarations
field0_f = ProtoField.string("custom.<field0-name>","Custom Field 0")
field1_f = ProtoField.string("custom.<field1-name>","Custom Field 1")
-- register custom protocol as postdissector
register_postdissector(custom_protocol)
function custom_protocol.dissector(buffer,pinfo,tree)
-- local field values of "pre" dissector which are analyzed
local gvsp_field0_value = gvsp_field0_f()
local gvsp_field1_value = gvsp_field1_f()
-- functions which shell be unit tested
function0(...)
function1(...)
end
function0(...)
-- implementation
end
function1(...)
-- implementation
end
Disons que je ne veux pas séparer les fonctions du fichier de script dans un fichier de module séparé (ce qui serait probablement rendre les choses plus facile). Comment puis-je définir des tests (de préférence avec luaunit car facile à intégrer, mais un autre outil serait correct) pour les fonctions définies dans script.lua
dans le fichier script.lua
ou dans un fichier séparé test_script.lua
?
Cela dépend _a beaucoup_ sur _how_ vous définissez les choses. Utilisez-vous 'local' (ce qui rend les choses beaucoup plus difficiles) ou utilisez-vous des ''' '' '' '' '' '' '' '' '' '' '' 'locaux' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' Comment votre code est-il structuré? S'il vous plaît ajoutez un petit échantillon de code de la façon dont vous définissez les fonctions etc. (ne doit pas être le code réel, juste des fonctions fictives qui correspondent à la façon dont vous définissez vos trucs.) À l'heure actuelle, il n'y a pas assez d'informations réponses. – nobody
Le script se verrouille comme le post-dissecteur de https://wiki.wireshark.org/Lua/Dissectors#postdissectors avec les fonctions 'local' définies à la fin du fichier qui sont utilisées dans la fonction' dissector' du protocole. Cependant je ne m'en tiens pas à cette structure. – thinwybk