2017-02-17 2 views
1

Ich muss Zahlen vergleichen, die im Gurkentest größer oder kleiner als die Anzahl sind. Wie soll ich ein Szenario dafür schreiben, um es effektiv zu machen?Best Practice zum Vergleichen ganzzahliger Werte in Gurkeltestszenarien

Scenario: Search and Compare count value. 
Then I Search and Verify "user" count is "less than" 3 
Then I Search and Verify "user" count is "greater than" 3 

Von einem oben genannten Szenarien Wie sollte ich Vergleichsoperator übergeben und von Java Stepdefs bekommen.

Antwort

1

Anstatt sich auf einen Komparator zu verlassen, verwenden Sie HamcrestlessThan und greaterThan Matcher. In Ihrer Schrittdefinition:

import static org.junit.Assert.assertThat; 
import static org.hamcrest.Matchers.greaterThan; 
import static org.hamcrest.Matchers.lessThan; 

... 

if(condition.equals("less than")) { 
    assertThat(val, lessThan(count)); 
} else if(condition.equals("greater than")) { 
    assertThat(val, greaterThan(count)); 
} 

Sie können, dass bereichern alle möglichen Bedingungen enthalten:

switch(condition.toLowerCase()) { 

    case "less than": 
    case "<": 
     assertThat(val, lessThan(count)); 
     break; 

    case "less than or equal to": 
    case "<=": 
     assertThat(val, lessThanOrEqualTo(count)); 
     break; 

    case "greater than": 
    case ">": 
     assertThat(val, greaterThan(count)); 
     break; 

    case "greater than or equal to": 
    case ">=": 
     assertThat(val, greaterThanOrEqualTo(count)); 
     break; 

    ... 
} 

Beachten Sie, dass Sie auf der hamcrest Bibliothek in Ihrem Projekt müssen abhängen (falls es nicht bereits eine Abhängigkeit).