freeuni-sdp / arkanoid-16

Console clone of classic Arkanoid game. A student project.
MIT License
1 stars 0 forks source link

Test errors on ubuntu #91

Open gkiko opened 8 years ago

gkiko commented 8 years ago

ლოგები travis-დან

Tests in error: 
  interactCapsuleAndPaddle_KilledPaddle(ge.edu.freeuni.sdp.arkanoid.model.AutopilotCapsuleTest): No line matching interface Clip supporting format PCM_SIGNED unknown sample rate, 16 bit, stereo, 4 bytes/frame, big-endian is supported.
  interactCapsule_BallDoubleSpeed(ge.edu.freeuni.sdp.arkanoid.model.AutopilotCapsuleTest): No line matching interface Clip supporting format PCM_SIGNED unknown sample rate, 16 bit, stereo, 4 bytes/frame, big-endian is supported.

პლათფორმაზე დამოკიდებული ტესტები გვიწერია ეხლა. ubuntu-ზე შეცდომას აგდებს კოდი, როდესაც ხმის გამოცემის ბრძანებები სრულდება.

SoundPlayer კლასი დამოკიდებულია ფაილურ სისტემაზე.

ზოგიერთ კლასს სტატიკური დამოკიდებულება აქვთ SoundPlayer-ზე: SoundPlayer.play(), რის გამოც ვერ დაიმოქება ეს კლასი.

მოსაფიქრებელია თუ როგორ დავწეროთ ტესტები ფაილური სისტემის გამოყენების გარეშე.

gkink commented 8 years ago

SoundPlayer კლასი singlton არის. პირდაპირ არ იძახებს play()-ს, ჯერ SoundPlayer.getInstance()-ს აკეთებს და მერე მაგ ინსტანზე იძახებს მეთოდებს. უბრალოდ სტატიკური სეტერი რო დავუმატოთ და ტესტირებისას ამ სეტერით დავუსეტოთ SoundPlayer რომელიც სინამდვილეში მოკი იქნება არ გამოვა?

gkiko commented 8 years ago

შენი ცვლილება ვნახე d7c7902da7471b9082f10687e7cf17ea21e644ab

ორი რამ არ მომწონს

  1. უსარგებლო მეთოდი დაიბადა მხოლოდ ტესტირების დასაკმაყოფილებლად
  2. სტატიკურ კლასს თავისი თავის ობიექტი გადაეცემა :suspect:

ჩემი აზრით გამოსავალი არის

  1. SoundPlayer-დან ცალკე კლასში გავიდეს AudioSystem-ის ნაწილი, რომლიც ჩაეწოდება SoundPlayer-ს შექმნისას
  2. შეიქმნას მშობელი ინტერფეისი, რომლის შვილიც გახდება SoundPlayer. ყველა კლასის ამ მშობლის გავლით დაელაპარაკება შვილ კლასებს
aazizyan commented 8 years ago

@gkiko შენი შემოთავაზებული იდეა მგონი მაინც არ გამოდის. სად უნდა გადაეცეს ინტერფეისი? ერთადერთი საშუალებაა getInstance()-დან. მაგრამ ამ შემთხვევაში როგორ დავმოკოთ აუდიო სისტემა?