• <legend id='DzE5h'><style id='DzE5h'><dir id='DzE5h'><q id='DzE5h'></q></dir></style></legend>
  • <tfoot id='DzE5h'></tfoot>

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

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

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

        使用原始参数模拟方法时 Mockito 中的 NullPointerE

        时间:2023-09-25
          <tfoot id='Rq5Xl'></tfoot>

            <tbody id='Rq5Xl'></tbody>

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

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

                  <bdo id='Rq5Xl'></bdo><ul id='Rq5Xl'></ul>
                  <legend id='Rq5Xl'><style id='Rq5Xl'><dir id='Rq5Xl'><q id='Rq5Xl'></q></dir></style></legend>
                  本文介绍了使用原始参数模拟方法时 Mockito 中的 NullPointerException的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我花了最后一点时间拔头发试图在我的测试中找到问题,并最终发现它与模拟一个采用原始参数的方法有关.这是一个演示问题的示例测试:

                  I've spent the last little while pulling out my hair trying to find the problem in my test, and eventually figured out it has to do with mocking a method that takes primitive arguments. Here's a sample test that demos the problem:

                  import static org.mockito.Matchers.any;
                  import static org.mockito.Mockito.mock;
                  import static org.mockito.Mockito.times;
                  import static org.mockito.Mockito.verify;
                  
                  import org.junit.Test;
                  
                  public class MockitoTest {
                      public static interface Foo {
                          public Object causeProblems(long arg);
                      }
                  
                      @Test
                      public void testFoo() {
                          Foo foo = mock(Foo.class);
                          foo.causeProblems(123);
                          verify(foo, times(1)).causeProblems(any());
                      }
                  }
                  

                  运行此测试时(我使用的是 Mockito 1.10 和 Java8),由于某种原因,我的堆栈跟踪在 verify 行上显示了 NPE:

                  When running this test (I'm using Mockito 1.10 and Java8), and for some reason my stack trace is showing an NPE on the verify line:

                  java.lang.NullPointerException
                      at com.amazon.jetstream.executor.worker.invoke.MockitoTest.testFoo(MockitoTest.java:19)
                      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                  ....
                  

                  我认为我的堆栈跟踪的一部分被抑制了(?)深入研究它,如果我在 Eclipse 中运行它并检查"该行,我可以从中获得更多信息,这告诉我简单:

                  I think part of my stack trace is being suppressed (?) Digging into it a bit further, I can get slightly more info out of it if I run it in Eclipse and "inspect" the line, which tells me simply:

                  java.lang.NullPointerException at longValue()
                  

                  问题:

                  1. 有谁知道如何解决这个错误?
                  2. 如果你能重现这个,你能从你的堆栈跟踪中获得更多信息吗?

                  推荐答案

                  你应该匹配 long 不匹配任何对象的匹配器:

                  You should matcher that matches long not any object:

                  verify(foo, times(1)).causeProblems(anyLong());
                  

                  我检查了它是否正常运行.

                  I checked that it runs correctly.

                  这篇关于使用原始参数模拟方法时 Mockito 中的 NullPointerException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:测试是否调用了另一个方法 下一篇:Spring jdbcTemplate 单元测试

                  相关文章

                  最新文章

                        <bdo id='Xhdum'></bdo><ul id='Xhdum'></ul>
                    1. <legend id='Xhdum'><style id='Xhdum'><dir id='Xhdum'><q id='Xhdum'></q></dir></style></legend>
                      <tfoot id='Xhdum'></tfoot>

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

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