2017-06-02 21 views
0

ファイルからの読み取りとファイルへの書き込み機能をテストしたいと思います。私の問題は、関数は何も持っていないということです。これまでは、この種の関数をファイルとしてのみパラメータとしてテストしました。私は他のquestinsを見て、これらを発見した:How to unit test a method that reads a given fileHow to test write to file in Java?しかし、彼らは本当に私を助けませんでした。私はOTテストをするコードは次のとおりです。ファイルへの書き込みとパラメータなしのファイルからの読み取り

public void loadData() 
    { 
     try(BufferedReader br=new BufferedReader(new FileReader(super.fileName))){ 
      String line; 
      while((line=br.readLine())!=null){ 
       String[] atributes=line.split(";"); 
       if(atributes.length!=4) 
        throw new Exception("Linia nu este valida!"); 
       Student t=new Student(atributes[0],atributes[1],atributes[2],atributes[3]); 
       super.save(t); 

      } 
      Thread.sleep(5000); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

    public synchronized void writeToFile() { 
     try (BufferedWriter br = new BufferedWriter(new FileWriter(super.fileName))){ 
      super.entities.forEach(x -> { 
       try { 
        br.write(x.studentFileLine()); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      }); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

は誰が私にファイルをパラメータなしでこれをテストする方法についてのヒントを与えることはできますか?

+1

あなたが参照した投稿は、コードをテスト可能にするという重要なポイントを説明しています。 fileパラメータを設定することなくテストすることで、コードをテスト可能にすることはできません。テスト可能でないコードを残しておきたい場合は、悪い習慣に頼っている可能性があります。 – davidxxx

+0

'super.fileName'はどのように割り当てられますか? – slim

+0

ところで、 "属性"には二重の 't'があります。私はこれを指摘しているのは、この情報源で頻繁に繰り返されているからです。 – slim

答えて

0

既存のメソッドのシグネチャを変更できない場合は、パラメータを取る新しいメソッドを追加し、既存のメソッドを新しいメソッドに委任するように変更します。

関連する問題