pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

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

<tfoot id='Mhh36'></tfoot>
<legend id='Mhh36'><style id='Mhh36'><dir id='Mhh36'><q id='Mhh36'></q></dir></style></legend>

    1. <small id='Mhh36'></small><noframes id='Mhh36'>

      • <bdo id='Mhh36'></bdo><ul id='Mhh36'></ul>

        Mockito,@InjectMocks 最終字段的奇怪行為

        Mockito, @InjectMocks strange behaviour with final fields(Mockito,@InjectMocks 最終字段的奇怪行為)

        • <tfoot id='8dSYQ'></tfoot>
            <bdo id='8dSYQ'></bdo><ul id='8dSYQ'></ul>

            <small id='8dSYQ'></small><noframes id='8dSYQ'>

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

                  <legend id='8dSYQ'><style id='8dSYQ'><dir id='8dSYQ'><q id='8dSYQ'></q></dir></style></legend>
                    <tbody id='8dSYQ'></tbody>
                1. 本文介紹了Mockito,@InjectMocks 最終字段的奇怪行為的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  我看到我認為是錯誤的行為.@InjectMocks 似乎并沒有在每個測試方法之前創建一個新的測試主題.@Mock 在哪里.在以下示例中,如果 Subject.section 是最后一個 @Test 失敗.如果它不是最終的,則兩者都通過.我目前的解決方法是使用@BeforeClass,但這并不理想.

                  I am seeing behaviour that I believe is a bug. @InjectMocks does not seem to create a new test subject before every test method. Where as @Mock does. In the following example, if Subject.section is final one @Test fails. If its not final both pass. My current workaround is to use @BeforeClass, but this is not ideal.

                  主題.java:

                  package inject_mocks_test;
                  public class Subject {
                  
                      private final Section section;
                  
                      public Subject(Section section) {
                          this.section = section;
                      }
                  
                      public Section getSection() {
                          return section;
                      }
                  }
                  

                  Section.java:

                  Section.java:

                  package inject_mocks_test;
                  
                  public class Section {}
                  

                  SubjectTest.java

                  SubjectTest.java

                  package inject_mocks_test;
                  
                  import org.mockito.InjectMocks;
                  import org.mockito.Mock;
                  import org.mockito.MockitoAnnotations;
                  import org.testng.annotations.BeforeMethod;
                  import org.testng.annotations.Test;
                  
                  import static org.testng.Assert.assertEquals;
                  
                  public class SubjectTest {
                  
                      @Mock
                      Section section;
                  
                      @InjectMocks
                      Subject subject;
                  
                      @BeforeMethod
                      public void setup() {
                          MockitoAnnotations.initMocks(this);
                      }
                  
                      @Test
                      public void test1() {
                          assertEquals(section, subject.getSection());
                      }
                  
                      @Test
                      public void test2() {
                          assertEquals(section, subject.getSection());        
                      }
                  }
                  

                  干杯.

                  推薦答案

                  您正在使用 @InjectMocks 進行 constructor 注入.只要 Mockito 找到未初始化的字段(空),這將起作用.JUnit 在每次測試之前都會創建一個新的測試類實例,所以 JUnit 粉絲(像我一樣)永遠不會遇到這樣的問題.TestNg 沒有創建測試類的新實例.它保持測試方法之間的狀態,所以當 MockitoAnnotations.initMocks(this) 第二次調用時,Mockito 會發現 subject 字段已經初始化并嘗試使用 <強>場注入.這在另一回合將一直有效,直到該領域不是最終的.

                  You are using the @InjectMocks for constructor incjection. This will work as long as Mockito finds the field not initalized (null). JUnit is creating a new instance of the test class before each test, so JUnit fans (like me) will never face such problem. TestNg is not creating a new instance of test class. It's keeping the state between test methods, so when MockitoAnnotations.initMocks(this) is called for the second time, Mockito will find subject field already initialized and will try to use field injection. This on the other turn will work until the field is not final.

                  這是一個錯誤嗎?我相信不是——而是 API 設計的自然結果.一些解決方法是添加

                  Is this is a bug? I believe not - rather a natural consequence of the API design. Some workaround for you would be to add

                  this.subject = null;
                  

                  在一些 @AfterMethod 方法中.

                  這篇關于Mockito,@InjectMocks 最終字段的奇怪行為的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                  【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                  相關文檔推薦

                  How can I detect integer overflow on 32 bits int?(如何檢測 32 位 int 上的整數溢出?)
                  Local variables before return statements, does it matter?(return 語句之前的局部變量,這有關系嗎?)
                  How to convert Integer to int?(如何將整數轉換為整數?)
                  How do I create an int array with randomly shuffled numbers in a given range(如何在給定范圍內創建一個隨機打亂數字的 int 數組)
                  Inconsistent behavior on java#39;s ==(java的行為不一致==)
                  Why is Java able to store 0xff000000 as an int?(為什么 Java 能夠將 0xff000000 存儲為 int?)
                2. <i id='s4Kjm'><tr id='s4Kjm'><dt id='s4Kjm'><q id='s4Kjm'><span id='s4Kjm'><b id='s4Kjm'><form id='s4Kjm'><ins id='s4Kjm'></ins><ul id='s4Kjm'></ul><sub id='s4Kjm'></sub></form><legend id='s4Kjm'></legend><bdo id='s4Kjm'><pre id='s4Kjm'><center id='s4Kjm'></center></pre></bdo></b><th id='s4Kjm'></th></span></q></dt></tr></i><div class="xz7l77z" id='s4Kjm'><tfoot id='s4Kjm'></tfoot><dl id='s4Kjm'><fieldset id='s4Kjm'></fieldset></dl></div>

                    <tbody id='s4Kjm'></tbody>

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

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

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

                            主站蜘蛛池模板: 地磅-电子地磅维修-电子吊秤-汽车衡-无人值守系统-公路治超-鹰牌衡器 | 缝纫客| 丁基胶边来料加工,医用活塞边角料加工,异戊二烯橡胶边来料加工-河北盛唐橡胶制品有限公司 | 数显水浴恒温振荡器-分液漏斗萃取振荡器-常州市凯航仪器有限公司 | 神超官网_焊接圆锯片_高速钢锯片_硬质合金锯片_浙江神超锯业制造有限公司 | 新型锤式破碎机_新型圆锥式_新型颚式破碎机_反击式打沙机_锤式制砂机_青州建源机械 | 水篦子|雨篦子|镀锌格栅雨水篦子|不锈钢排水篦子|地下车库水箅子—安平县云航丝网制品厂 | 吹塑加工_大型吹塑加工_滚塑代加工-莱力奇吹塑加工有限公司 | 生态板-实木生态板-生态板厂家-源木原作生态板品牌-深圳市方舟木业有限公司 | 一体化污水处理设备_生活污水处理设备_全自动加药装置厂家-明基环保 | 三效蒸发器_多效蒸发器价格_四效三效蒸发器厂家-青岛康景辉 | 南京蜂窝纸箱_南京木托盘_南京纸托盘-南京博恒包装有限公司 | 瓶盖扭矩仪(扭力值检测)-百科| 杭州画室_十大画室_白墙画室_杭州美术培训_国美附中培训_附中考前培训_升学率高的画室_美术中考集训美术高考集训基地 | 高空重型升降平台_高空液压举升平台_高空作业平台_移动式升降机-河南华鹰机械设备有限公司 | 防腐储罐_塑料储罐_PE储罐厂家_淄博富邦滚塑防腐设备科技有限公司 | 电动车头盔厂家_赠品头盔_安全帽批发_山东摩托车头盔—临沂承福头盔 | 协议书_协议合同格式模板范本大全 | 南京精锋制刀有限公司-纵剪机刀片_滚剪机刀片_合金刀片厂家 | 艺术漆十大品牌_艺术涂料加盟代理_蒙太奇艺术涂料厂家品牌|艺术漆|微水泥|硅藻泥|乳胶漆 | 智能家居全屋智能系统多少钱一套-小米全套价格、装修方案 | 郑州水质检测中心_井水检测_河南废气检测_河南中环嘉创检测 | 杭州月嫂技术培训服务公司-催乳师培训中心报名费用-产后康复师培训机构-杭州优贝姆健康管理有限公司 | 砖机托板价格|免烧砖托板|空心砖托板厂家_山东宏升砖机托板厂 | 耐酸碱胶管_耐腐蚀软管总成_化学品输送软管_漯河利通液压科技耐油耐磨喷砂软管|耐腐蚀化学软管 | 卷筒电缆-拖链电缆-特种柔性扁平电缆定制厂家「上海缆胜」 | led太阳能路灯厂家价格_风光互补庭院灯_农村市政工程路灯-中山华可路灯品牌 | 货车视频监控,油管家,货车油管家-淄博世纪锐行电子科技 | 海外整合营销-独立站营销-社交媒体运营_广州甲壳虫跨境网络服务 焊管生产线_焊管机组_轧辊模具_焊管设备_焊管设备厂家_石家庄翔昱机械 | 三佳互联一站式网站建设服务|网站开发|网站设计|网站搭建服务商 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | 水质监测站_水质在线分析仪_水质自动监测系统_多参数水质在线监测仪_水质传感器-山东万象环境科技有限公司 | 天津货架厂_穿梭车货架_重型仓储货架_阁楼货架定制-天津钢力仓储货架生产厂家_天津钢力智能仓储装备 | 自动化改造_智虎机器人_灌装机_贴标机-上海圣起包装机械 | 12cr1mov无缝钢管切割-15crmog无缝钢管切割-40cr无缝钢管切割-42crmo无缝钢管切割-Q345B无缝钢管切割-45#无缝钢管切割 - 聊城宽达钢管有限公司 | 股指期货-期货开户-交易手续费佣金加1分-保证金低-期货公司排名靠前-万利信息开户 | 户外环保不锈钢垃圾桶_标识标牌制作_园林公园椅厂家_花箱定制-北京汇众环艺 | 拉力机-万能试验机-材料拉伸试验机-电子拉力机-拉力试验机厂家-冲击试验机-苏州皖仪实验仪器有限公司 | 蒸压釜-陶粒板隔墙板蒸压釜-山东鑫泰鑫智能装备有限公司 | 提升海外网站流量,增加国外网站访客UV,定制海外IP-访客王 | 照相馆预约系统,微信公众号摄影门店系统,影楼管理软件-盟百网络 | 油液红外光谱仪-油液监测系统-燃油嗅探仪-上海冉超光电科技有限公司 |