1

私はJunitが初めてです。if条件、ループのテストケースを書きたいです。

if,loop 条件のテスト ケースを作成するためのガイドラインや手順はありますか?
誰かが例で説明できますか?

IF Age < 18 THEN WHILE Age <> 18

  DO ResultResult = Result +1 AgeAge = Age +1 END
  DO Print “You can start driving in {Result} years” 

ELSE 

 Print “You can start driving now!” 

ENDIF 
4

2 に答える 2

2

コードで処理できる主要なシナリオごとに 1 つのテスト ケースが必要です。「if」ステートメントには、一般に 2 つのケースがありますが、2 つの「境界」である 3 つ目のケースを含めることもできます。ループでは、ループが複数回実行されるケースと、ループがまったく実行されないケースを含めることができます。

あなたの特定の例では、3 つのテスト ケースを作成します。テストクラス。各テスト メソッドは、特定のシナリオでテストしているコードを実行し、結果が正しいことをアサートする必要があります。

最後に、各テスト メソッドを何と呼ぶか​​を検討する必要があります。テストしているシナリオと予想されることを示す文を使用することを強くお勧めします。テストメソッド名を「test」で始める人もいます。しかし、私の経験では、これにより、テストしようとしている条件から注意がそらされ、テストしている特定のメソッドまたは関数に注意が向けられる傾向があり、その結果、テストの品質が低下する傾向があります。あなたの例では、テストメソッドを次のように呼び出します。

public void canStartDrivingIfAgeOver18()
public void canStartDrivingIfAgeEquals18()
public void numberOfYearsRemainingIsShownIfAgeUnder18()
于 2012-10-01T07:32:15.930 に答える
0

Java用のjunitでの記述についての私の理解から、さまざまなブロックにソースコードを作成するために使用されたのは従来のコードであり、値がブロックステートメントにステップインするようにテストケースから関数に引数として値を渡すために使用されました、およびテストケースに合格します。

たとえば、functionName(int age)と仮定して変数をageとして使用している場合、テストでは、テストケースから整数をfunctionName(18)として渡す必要があります。これにより、ステートメントにステップインし、テストケースのステータスが表示されます。 。テストクラスのテストケースを作成し、関数のテストケースを作成します

UseClass classObj=new UseClass();// it should be your class

    @Test
      public void testValidateAge() {
          classObj.validateAge("20");
          assertEquals(200,"");
   }

'間違っている場合は私を修正してください:)

于 2012-10-01T06:39:08.453 に答える