<small id='ecjtx'></small><noframes id='ecjtx'>

<tfoot id='ecjtx'></tfoot>
<i id='ecjtx'><tr id='ecjtx'><dt id='ecjtx'><q id='ecjtx'><span id='ecjtx'><b id='ecjtx'><form id='ecjtx'><ins id='ecjtx'></ins><ul id='ecjtx'></ul><sub id='ecjtx'></sub></form><legend id='ecjtx'></legend><bdo id='ecjtx'><pre id='ecjtx'><center id='ecjtx'></center></pre></bdo></b><th id='ecjtx'></th></span></q></dt></tr></i><div id='ecjtx'><tfoot id='ecjtx'></tfoot><dl id='ecjtx'><fieldset id='ecjtx'></fieldset></dl></div>

    • <bdo id='ecjtx'></bdo><ul id='ecjtx'></ul>
    <legend id='ecjtx'><style id='ecjtx'><dir id='ecjtx'><q id='ecjtx'></q></dir></style></legend>

        具有泛型的模拟方法并在返回类型中扩展

        时间:2023-09-25

        <small id='YKOFO'></small><noframes id='YKOFO'>

      1. <i id='YKOFO'><tr id='YKOFO'><dt id='YKOFO'><q id='YKOFO'><span id='YKOFO'><b id='YKOFO'><form id='YKOFO'><ins id='YKOFO'></ins><ul id='YKOFO'></ul><sub id='YKOFO'></sub></form><legend id='YKOFO'></legend><bdo id='YKOFO'><pre id='YKOFO'><center id='YKOFO'></center></pre></bdo></b><th id='YKOFO'></th></span></q></dt></tr></i><div id='YKOFO'><tfoot id='YKOFO'></tfoot><dl id='YKOFO'><fieldset id='YKOFO'></fieldset></dl></div>

            <bdo id='YKOFO'></bdo><ul id='YKOFO'></ul>

              <legend id='YKOFO'><style id='YKOFO'><dir id='YKOFO'><q id='YKOFO'></q></dir></style></legend>
                <tbody id='YKOFO'></tbody>

              • <tfoot id='YKOFO'></tfoot>
                1. 本文介绍了具有泛型的模拟方法并在返回类型中扩展的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  是否可以使用签名 Set< 模拟(使用 mockito)方法?扩展汽车>getCars() 没有抑制警告?我试过了:

                  Is it possible to mock (with mockito) method with signature Set<? extends Car> getCars() without supress warnings? i tried:

                  XXX cars = xxx;
                  when(owner.getCars()).thenReturn(cars);
                  

                  但无论我如何声明 cars,我总是会遇到编译错误.例如,当我这样声明时

                  but no matter how i declare cars i alway get a compilation error. e.g when i declare like this

                  Set<? extends Car> cars = xxx
                  

                  我得到标准的通用/模拟编译错误

                  i get the standard generic/mockito compilation error

                  The method thenReturn(Set<capture#1-of ? extends Car>) in the type OngoingStubbing<Set<capture#1-of ? extends Car>> is not applicable for the arguments (Set<capture#2-of ? extends Car>)
                  

                  推荐答案

                  使用 doReturn-when 备用存根语法.

                  Use the doReturn-when alternate stubbing syntax.

                  被测系统:

                  public class MyClass {
                    Set<? extends Number> getSet() {
                      return new HashSet<Integer>();
                    }
                  }
                  

                  和测试用例:

                  import static org.mockito.Mockito.*;
                  
                  import java.util.HashSet;
                  import java.util.Set;
                  
                  import org.junit.Test;
                  
                  public class TestMyClass {
                    @Test
                    public void testGetSet() {
                      final MyClass mockInstance = mock(MyClass.class);
                  
                      final Set<Integer> resultSet = new HashSet<Integer>();
                      resultSet.add(1);
                      resultSet.add(2);
                      resultSet.add(3);
                  
                      doReturn(resultSet).when(mockInstance).getSet();
                  
                      System.out.println(mockInstance.getSet());
                    }
                  }
                  

                  不需要错误或警告抑制

                  这篇关于具有泛型的模拟方法并在返回类型中扩展的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:如何在 tycho 中引用 mockito? 下一篇:使用 Mockito 模拟方法行为时以任何顺序匹配列表

                  相关文章

                  最新文章

                2. <i id='yxbox'><tr id='yxbox'><dt id='yxbox'><q id='yxbox'><span id='yxbox'><b id='yxbox'><form id='yxbox'><ins id='yxbox'></ins><ul id='yxbox'></ul><sub id='yxbox'></sub></form><legend id='yxbox'></legend><bdo id='yxbox'><pre id='yxbox'><center id='yxbox'></center></pre></bdo></b><th id='yxbox'></th></span></q></dt></tr></i><div id='yxbox'><tfoot id='yxbox'></tfoot><dl id='yxbox'><fieldset id='yxbox'></fieldset></dl></div>
                    <bdo id='yxbox'></bdo><ul id='yxbox'></ul>
                3. <tfoot id='yxbox'></tfoot>

                    <legend id='yxbox'><style id='yxbox'><dir id='yxbox'><q id='yxbox'></q></dir></style></legend>

                      <small id='yxbox'></small><noframes id='yxbox'>