2011-02-04 8 views
0

こんにちは 私は1つのクラスを持っており、そのクラスには次のようなメソッドがあります。 私はjavaを使用しています。私はテストケースを書きたい、上記の方法のためのテストケースの問題

public class ABC{ 
    some code here... 
    .................. 
    PreparedStatement pre; 
     public void insertUser(String firstName,String lastName){ 
      pre.setString(1,firstName); 
      pre.setString(2,lastName); 
      pre.execute(); 
     } 
} 

次のように、私は、テストクラスを作成しました:

public class ABCTest{ 
    ABC abc=new ABC(); 
    public void testInsertUser(){ 

は、今ここで私はassert文を書きたい、私は、インサートがあるかどうかをテストしたいです成功、 assert()を使ってメソッド変数をテストしたいと思います。これについては、Javaでテストケースを書く方法を教えてください。あなたはこのような何かをする必要があり

+0

おそらく、ユニットテストをアサートすることは望ましくないことに注意してください。むしろ、単に 'boolean'を返すだけで、テストフレームワークが複数のテストの結果を集めることができます。 –

+0

あなたの質問をしたときの右側に、この便利な**フォーマット方法**ボックスがありました。 ** [?] **の質問エリアのすぐ上にある[page linked](http://stackoverflow.com/editing-help)のように、読む価値があります。あなたの質問に力を入れればするほど、あなたが受け取る回答の質と量がますます良くなります。あなたの11の他の質問の** none **が本当に受け入れられた答えを尊重して受けているなら、それは質問の質に問題があることを示しています。 StackOverflowコミュニティはそれよりも役に立ちます。 –

+0

あなたは同じ質問をしましたhttp://stackoverflow.com/questions/4895645/help-writing-junit-for-jdbc/4896904#4896904。データを追加するために質問を編集したい場合は、重複した質問をしないでください。 – Pushkar

答えて

0

は、あなたのような何かを意味しています!

1

  1. は、INSERTの前と後の行数を確認し、カウントが、カウント以前よりも大きい1であることを主張した後。
  2. SELECTを実行して、自分の行がそれをデータベースに作成したかどうかを確認します。
  3. 呼び出しによって返される影響を受ける行の数を確認し、それが1と等しいことを確認します。
1

おそらくあなたは 'selectUser'や 'removeUser'のような他のメソッドを 'insertUser'メソッドと一緒に使用しています。したがって、testCaseでは 'selectUser'メソッドを使用してDBにも、最後に、テスト後にremoveUserを呼び出す必要があります。以前と同じようにデータをきれいに保つ必要があります(同じ結果で同じテストデータに対してテストを複数回実行できるようにするため)。

public void testInsertUser(){ 
ABC.insertUser(User.firstname, user.lastname); 
Statement stmt = conn.createStatement(); 
ResultSet rs = stmt.executeQuery("SELECT firstname_Colname, lastname_Colname FROM Your_Table"); 
boolean found = false; 
while (rs.next()) 
{ 
    found = ((User.firstname = rs.getString("firstname_Colname")) and (User.lastname = rs.getString("lastname_Colname"))); 
    if (found) 
    { 
    break; 
    }  
} 
assertEquals('test failed!', true, found); 
} 

はイエス、あなたが実際に私のために任意の意味をなさないdoesntのPreparedStatementをテストする場合:

関連する問題