Gå til innhold

[LØST]Få maskinen til å fylle inn inputs som blir spørt etter av programmet


Anbefalte innlegg

EDIT: Om dere ikke hvet hvordan mar gjør slik i ruby, men hvet ett bedre engelsk ord for det jeg er ute etter så post gjærne det. Slitte og finne noe om det siden jeg ikke hvet helt nøyaktig hva jeg skal søke på.

 

Om jeg skriver en kode som skal teste andre koder, hvordan får jeg programmet mitt til å automatisk fylle inn inoput verdienne som disse andre programmene spørr etter av brukeren.

 

Den første her gir kunn output uten og spørre om input fra brukeren, så den er grei

testFramework("testProg1") { |exp| exp.testProg }

 

 

Denne spør derimot etter input fra brukeren underveis. Brukeren må velge noen parametere under kjøringen av programmet. Meningen er att testen skal være automatisk uten at en bruker må fylle inn disse verdiene.

Så planen var å lage en liste med input verdier og la programet hente sine input forespørsler fra denne listen.

testFramework("testProg2") { |exp| exp.testProg }

 

Så hvordan lar man programmet automatisk fylle inn disse input forespørslene. Jeg skal helst ikke endr enoe i koden til programmene som testes.

Endret av Lord-KGA
Lenke til kommentar
Videoannonse
Annonse

Jeg får det til i command line

 

ruby tf.rb < input2.txt

 

Det er lett.

 

tf består nå kun av dette

t = gets

puts t

t2 = gets

puts t2

 

og input2.txt består kun av to ord, test og ttttt

 

Og disse to ordenne blir hentet og brukt av programmet isteden for å kreve at brukeren skal taste det inn

 

 

 

Men det jeg vill, og ikke får till, det er gjøredette inne i ruby slik at jeg ikke er nødt til å starte opp i komandolinjen for at det skal fungere.

Lenke til kommentar

Se nærmere på IO-klassen.

 

Lite eksempel:

IO.popen("ruby tf.rb", "w+") do |io|
 io.puts "abc"
 io.puts "123"
 puts io.readlines
end

 

Ser for meg at du må ta i bruk tråder for lesing/skriving/timeouts osv etter hvert. Lykke til.

 

PS: Om det er testing du driver med, så er det vanlig å bruke Test::Unit el.l., og teste koden direkte i stedet for å mate inn data og sjekke output.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...