如何检查JUnit我们期望返回的确切值?

在下面的示例中,可以检查工作表的最后一个元素是否真的没有出现,因为它已经在列表中。如何查看预期返回的确切值?

public class streamExample2 {public static void main(String[] args) {
    List<String> stringList = new ArrayList<String>();

    stringList.add("один");
    stringList.add("два");
    stringList.add("три");
    stringList.add("один");

    System.out.println (countstring(stringList));}

    public static List<String> countstring  (List <String> stringList){
        Stream <String> stream = stringList.stream ();

            List<String>differentStrings = stream .distinct ()
            .collect (Collectors.toList ());

        return differentStrings;
    }
   }


饮歌长啸
浏览 836回答 2
2回答

RISEBY

您可以使用JUnit轻松测试具有返回值的方法。测试a&nbsp;void main在某种程度上更难,并且在更大的应用程序中没有任何意义(那些类比包含更多类的应用程序更多main)。在你的情况下,我会将要测试的代码提取到一个方法中,让我们说下面的一个:import&nbsp;java.util.List;import&nbsp;java.util.stream.Collectors;public&nbsp;class&nbsp;StackoverflowDemo&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;List<String>&nbsp;getDistinctValuesFrom(List<String>&nbsp;list)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;list.stream().distinct().collect(Collectors.toList()); &nbsp;&nbsp;&nbsp;&nbsp;}}由于这种方法static,您不需要任何类的实例。对于简单的单元测试 - 通常 - 您需要输入值和预期输出值。在这种情况下,您可以实现两个列表,一个列表具有重复项,另一个列表表示消除第一个列表重复项的预期结果。一个JUnit测试用例将预期的输出与/用来比较(我将永远不会用英语 -&nbsp;这里的母语人士编辑这些介词)实际的输出。JUnit使用比较(返回)值(方法)的特定方法。测试此方法的测试类可能如下所示:import&nbsp;static&nbsp;org.junit.jupiter.api.Assertions.*;import&nbsp;java.util.ArrayList;import&nbsp;java.util.List;import&nbsp;org.junit.jupiter.api. Test;import&nbsp;de.os.prodefacto.StackoverflowDemo;class&nbsp;StreamTest&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;@Test &nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;test()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;provide&nbsp;a&nbsp;list&nbsp;that&nbsp;contains&nbsp;dpulicates&nbsp;(input&nbsp;value) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List<String>&nbsp;input&nbsp;=&nbsp;new&nbsp;ArrayList<String>(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input.add("AAA"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input.add("BBB"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input.add("CCC"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input.add("AAA"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input.add("DDD"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input.add("EEE"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input.add("AAA"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input.add("BBB"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input.add("FFF"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input.add("GGG"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;provide&nbsp;an&nbsp;expected&nbsp;result &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List<String>&nbsp;expected&nbsp;=&nbsp;new&nbsp;ArrayList<String>(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;expected.add("AAA"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;expected.add("BBB"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;expected.add("CCC"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;expected.add("DDD"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;expected.add("EEE"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;expected.add("FFF"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;expected.add("GGG"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;get&nbsp;the&nbsp;actual&nbsp;value&nbsp;of&nbsp;the&nbsp;(static)&nbsp;method&nbsp;with&nbsp;the&nbsp;input&nbsp;as&nbsp;argument &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List<String>&nbsp;actual&nbsp;=&nbsp;StackoverflowDemo.getDistinctValuesFrom(input); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;assert&nbsp;the&nbsp;result&nbsp;of&nbsp;the&nbsp;test&nbsp;(here:&nbsp;equal) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assertEquals(expected,&nbsp;actual); &nbsp;&nbsp;&nbsp;&nbsp;}}请注意,您可以而且应该测试不良行为,例如误报或Exceptions。对于比这个简单示例更进一步的内容,谷歌搜索JUnit教程并阅读其中的一些内容。请注意,测试用例也可能是错误的,这可能会导致严重的问题!仔细检查您的测试,因为预期值可能是错误的,因此尽管方法正确实施,测试失败的原因。

慕码人2483693

这可以通过HashSet完成。HashSet是一种仅存储唯一值的数据结构。@Testpublic&nbsp;void&nbsp;testSalutationMessage()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;List<String>&nbsp;stringList&nbsp;=&nbsp;new&nbsp;ArrayList<String>(); &nbsp;&nbsp;&nbsp;&nbsp;stringList.add("one"); &nbsp;&nbsp;&nbsp;&nbsp;stringList.add("two"); &nbsp;&nbsp;&nbsp;&nbsp;stringList.add("three"); &nbsp;&nbsp;&nbsp;&nbsp;stringList.add("one"); &nbsp;&nbsp;&nbsp;&nbsp;Set<String>&nbsp;set&nbsp;=&nbsp;new&nbsp;HashSet<String>(); &nbsp;&nbsp;&nbsp;&nbsp;stringList.stream().forEach(currentElement&nbsp;->&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assertFalse("String&nbsp;already&nbsp;exist&nbsp;in&nbsp;List",&nbsp;set.contains(currentElement)); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set.add(currentElement); &nbsp;&nbsp;&nbsp;&nbsp;});}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java