【问题标题】:My Junit test isn't working我的 Junit 测试不起作用
【发布时间】:2018-04-09 11:58:41
【问题描述】:
import static org.junit.Assert.assertEquals;

import org.junit.Test;

public class TextAnalysisTest { 

        @Test
        public void testNumberRange(){
        //if i put a number between 1-4 here - Junit will pass the test
        //if not - Junit will fail

        int [] input = {1, 2, 3, 4};
        int min = 1;
        int max = 4;
        assertEquals(input).isGreaterThanOrEqualTo(min).isLessThanOrEqualTo(max);

            System.out.println("test finished");
        }


}

我是 Java 新手,并且非常努力学习。有人可以帮我解决这个问题吗?谢谢。

【问题讨论】:

  • 抱歉,我希望用户输入一个介于 1-4 之间的数字,以便测试通过,如果不通过则会引发错误。
  • 您遇到的错误是什么?
  • 你得到的错误是什么,试试这个 assertTrue(input[0] >= min && input[length-1]
  • 表示 assertEquals(input) 行有问题。它说它只适用于整数对象

标签: java unit-testing testing junit


【解决方案1】:

您必须遍历数组并证明每个值都在最小值和最大值之间。

【讨论】:

    【解决方案2】:
    class TextAnalysisTest {
    
        @Test
        public void testNumberRange(){
        //if i put a number between 1-4 here - Junit will pass the test
        //if not - Junit will fail
    
        int [] input = {1, 2, 3, 4};
        int min = 1;
        int max = 4;
        for(int k:input){
    assertEquals(k).isGreaterThanOrEqualTo(min).isLessThanOrEqualTo(max);
    
    
    }
     System.out.println("test finished");
        }
    }
    

    【讨论】:

      【解决方案3】:

      将输入设为单个 int,而不是 array[]。
      而且你必须修复 assertEquals 逻辑。

      class TextAnalysisTest {
      
          @Test
          public void testNumberRange(){    
          int input = 2;
          int min = 1;
          int max = 4;
          assertTrue(input>=min);
          assertTrue(input<=max);
          System.out.println("test finished");
          }
      
      }
      

      【讨论】:

        猜你喜欢
        • 2012-02-07
        • 1970-01-01
        • 2018-05-03
        • 2012-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-17
        • 2011-03-14
        相关资源
        最近更新 更多