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

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

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

        Mockito:模拟将在 for 循环中循环的数组列表

        时间:2023-09-25
          <bdo id='ykNzX'></bdo><ul id='ykNzX'></ul>

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

            <tbody id='ykNzX'></tbody>

              <i id='ykNzX'><tr id='ykNzX'><dt id='ykNzX'><q id='ykNzX'><span id='ykNzX'><b id='ykNzX'><form id='ykNzX'><ins id='ykNzX'></ins><ul id='ykNzX'></ul><sub id='ykNzX'></sub></form><legend id='ykNzX'></legend><bdo id='ykNzX'><pre id='ykNzX'><center id='ykNzX'></center></pre></bdo></b><th id='ykNzX'></th></span></q></dt></tr></i><div id='ykNzX'><tfoot id='ykNzX'></tfoot><dl id='ykNzX'><fieldset id='ykNzX'></fieldset></dl></div>
              <tfoot id='ykNzX'></tfoot>
              <legend id='ykNzX'><style id='ykNzX'><dir id='ykNzX'><q id='ykNzX'></q></dir></style></legend>
                1. 本文介绍了Mockito:模拟将在 for 循环中循环的数组列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我有一个正在测试的方法,其中包含以下代码段:

                  I have a method under test that contains the following snippet:

                  private void buildChainCode(List<TracedPath> lines){
                      for(TracedPath path : lines){
                          /.../
                      }
                  }
                  

                  我的单元测试代码如下所示:

                  My unit test code looks like this:

                  public class ChainCodeUnitTest extends TestCase {
                  
                      private @Mock List<TracedPath> listOfPaths;
                      private @Mock TracedPath tracedPath;
                  
                      protected void setUp() throws Exception {
                          super.setUp();
                          MockitoAnnotations.initMocks(this);
                      }
                  
                      public void testGetCode() {
                          when(listOfPaths.get(anyInt())).thenReturn(tracedPath);
                  
                          ChainCode cc = new ChainCode();
                          cc.getCode(listOfPaths);
                  
                          /.../
                      }
                  }
                  

                  问题是,在运行测试时,测试代码永远不会进入 for 循环.我应该在什么情况下指定条件,以便进入 for 循环?目前我已经指定了 when(listOfPaths.get(anyInt())).thenReturn(tracedPath),但我猜它从未使用过.

                  The problem is, that while running the test, the test code never enters the for loop. What when conditions should I specify, so that the for loop would be entered? Currently I have specified when(listOfPaths.get(anyInt())).thenReturn(tracedPath), but I guess it is never used.

                  推荐答案

                  你的问题是当你在for-each循环中使用一个集合时,它的iterator()方法被调用了;而且您还没有使用该特定方法.

                  Your problem is that when you use a collection in a for-each loop, its iterator() method gets called; and you haven't stubbed that particular method.

                  我强烈建议您不要模拟列表,而是传递一个真实的列表,其中的元素只是您模拟的 TracedPath,任意多次.像

                  Instead of mocking the list, I strongly recommend you just pass a real list, where the elements are just your mocked TracedPath, as many times as you want it. Something like

                  listOfPaths = Arrays.asList(mockTracedPath, mockTracedPath, mockTracedPath);
                  

                  这篇关于Mockito:模拟将在 for 循环中循环的数组列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:如何验证调用了非模拟对象的方法? 下一篇:如何通过mockito验证是否从其他具有相同类的方法

                  相关文章

                  最新文章

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

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

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

                    • <bdo id='qDUuH'></bdo><ul id='qDUuH'></ul>
                      <tfoot id='qDUuH'></tfoot>