java - 以不同的顺序从测试方法返回输入,然后将它们提供给方法

标签 java arrays testing

基本上我需要一种返回值的延迟: 因此,如果我的方法 SlowThinker 被赋予字符串“Hello”,然后是“Goodbye”,然后是“See you later”,它需要返回“”(空字符串),然后是“Hello”,然后是“Goodbye”(等等, 始终落后于当前输入)。

到目前为止,我试图将所有输入保存在一个数组中,但我无法弄清楚我在实现中做错了什么:

public class SlowThinker {
private String[] sayings = new String[20];
private int i = 0;
public int increment(){
    while(true){
        i++;
        return i;
    }
}
public String transform(String stringToTransform){
    sayings[0] = "";
    sayings[increment()] = stringToTransform;
    return sayings[increment()-1];
}

我还在另一个类(class)中使用以下作为我的测试人员:

assertEquals("", this.slowThinkerOne.transform("Return This Later"));
    assertEquals("Return This Later", this.slowThinkerOne
            .transform("One More Time"));
    assertEquals("One More Time", this.slowThinkerOne.transform(""));
    assertEquals("", this.slowThinkerTwo.transform("This is the Last Time"));

非常感谢!

最佳答案

您在 transform() 方法中调用了两次 increment()。您可以通过将值存储在临时变量中来修复它。

int val = increment();
sayings[val] = stringToTransform;
return sayings[val];

关于java - 以不同的顺序从测试方法返回输入,然后将它们提供给方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15353375/

相关文章:

java - 如何使用 Hector API 将序列化的 Java 对象插入到 Cassandra 中?

javascript - 如果没有打开页面,Phantom JS 可以运行吗

testing - 如何在使用 Cypress 的 E2E 测试中登录 Auth0?

java - SpringBootTest @EnabledWebSocket 忽略

java - 关于 boolean 递归的困惑

java - 将 int 数组插入到 ArrayList

java - 将数组索引与字符串进行比较?

字符数组比较

testing - 如何提高 Go 中的测试覆盖率?

java - searchview.onQueryTextListener 之后得到错误的位置 recyclerview