【发布时间】:2020-03-31 11:04:14
【问题描述】:
我正在寻找一种在测试函数中给出数组长度时填充字符串数组的方法。例如,当 test 给出长度 100 时,我希望这 5 个字符串值在循环中整个数组中打印,以便打印到最后。到目前为止,我设法用前 5 个填充数组,但是,我找不到循环它的方法,并且当给出更高的数组长度时测试失败。感谢您的帮助!
public class Sid {
public static String howMuchILoveYou(int nb_petals) {
String Petals[]=new String[7];
Petals[0]="zero index"; //cannot skip this for some reason
Petals[1]="I love you";
Petals[2]="a little";
Petals[3]="a lot";
Petals[4]="passionately";
Petals[5]="madly";
Petals[6]="not at all";
return Petals[nb_petals].toString();
}
}
测试
import static org.junit.Assert.assertEquals;
import java.util.Random;
import org.junit.Test;
public class SampleTest {
@Test
public void test1() {
assertEquals("I love you", Sid.howMuchILoveYou(1));
assertEquals("a little", Sid.howMuchILoveYou(2));
assertEquals("not at all", Sid.howMuchILoveYou(6));
assertEquals("I love you", Sid.howMuchILoveYou(343)); //THIS ONE FAILS
}
}
【问题讨论】:
-
return Petals[(nb_petals - 1) % 6 + 1];? (反正你不需要.toString())。 -
谢谢先生!这就像一个魅力。请你给我简要解释一下这是如何解决的 - 为什么 (nb_petals - 1) 以及 "% 6 + 1" 代表什么?或者我什么时候可以在 java 文档中找到这些东西?