我尝试测试如何从我的文件中获取索引0和5的值。我可以得到价值。但是,要使用JUnit测试该值,我只能测试if(index == 0)但是它没有检查(index == 5)。
那么,如何使用if else一次测试两个索引?
@Test
public void test(){
for(index = 0; index<arrayList.size(); index++){
if(index==0 && index==5){
given()
.header(something)
.get(something)
.then(something)
.body("try", contains(arrayList.get(index).getSomething(),arrayList.get(index).getSomething()))
.log().all()
.statusCode(HttpStatus.SC_OK)
}
}
}
答案 0 :(得分:2)
在单元测试中,每个测试方法都会验证单个期望有关测试单元行为的信息。 因此,您针对不同的输入和/或不同的期望编写了不同的测试。
测试也不应该有(自写)逻辑。
如果您需要迭代输入值,可以考虑参数化测试:http://blog.schauderhaft.de/2012/12/16/writing-parameterized-tests-with-junit-rules/
答案 1 :(得分:1)
简单:
for(index = 0; index<arrayList.size(); index++){
if(index==0 && index==5){
这表示:如果index为0 且 index为5.
int不能同时具有两个值。你可能想要:
if(index==0 || index==5){
但当然:提摩太是正确的,你想要一个&#34;检查&#34;每次测试。
正确的解决方案是:编写一个带有参数indexToCheckFor
的私有帮助器方法,以便您可以执行
private void testForIndex(int indexToCheckFor) {
....
if(index == indexToCheckFor) {
然后有两个@Test方法,一个调用testForIndex(0)
,另一个调用5。