<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    jmock測試的準(zhǔn)備工作

    private Mockery context = new JUnit4Mockery() {
            {
                setImposteriser(ClassImposteriser.INSTANCE);
            }
        };

    注意這里的setImposteriser(ClassImposteriser.INSTANCE);
    因為默認(rèn)的JUnit4Mockery的Imposteriser是JavaReflectionImposteriser,他是針對接口進行mock的,如果要針對class進行mock,必須setImposteriser(ClassImposteriser.INSTANCE);
    這樣之后context便可以對class進行mock了


    官方的文檔:

    Mocking Classes with jMock and the ClassImposteriser

    Because it uses Java's standard reflection capability, the default configuration of the jMock framework can only mock interfaces, not classes. (Actually, we consider that to be a good thing because it encourages the design to focus on communication between objects rather than static classification or data storage). However, the ClassImposteriser extension class uses the CGLIB 2.11 and Objenesis2 libraries to create mock objects of classes as well as interfaces. This is useful when working with legacy code to tease apart dependencies between tightly coupled classes.

    To use the ClassImposteriser:

    1. Add jmock-legacy-2.1.0-RCn.jar, cglib-nodep-2.1_3.jar and objenesis-1.0.jar to your CLASSPATH.
    2. Plug the ClassImposteriser into the Mockery of your test class:

      Raw

      import org.jmock.Mockery;
      import org.jmock.Expectations;
      import org.jmock.lib.legacy.ClassImposteriser;

      public class ConcreteClassTest extends TestCase {
      private Mockery context = new Mockery() {{
      setImposteriser(ClassImposteriser.INSTANCE);
      }};

      ...
      }

      JUnit 3

      import org.jmock.Expectations;
      import org.jmock.integration.junit3.MockObjectTestCase;
      import org.jmock.lib.legacy.ClassImposteriser;

      public class ConcreteClassTest extends MockObjectTestCase {
      {
      setImposteriser(ClassImposteriser.INSTANCE);
      }

      ...
      }

      JUnit 4

      import org.jmock.Mockery;
      import org.jmock.Expectations;
      import org.jmock.integration.junit4.JUnit4Mockery;
      import org.jmock.lib.legacy.ClassImposteriser;

      @RunWith(JMock.class)
      public class ConcreteClassTest {
      private Mockery context = new JUnit4Mockery() {{
      setImposteriser(ClassImposteriser.INSTANCE);
      }};

      ...
      }
    3. Your tests can now create mocks of abstract or even concrete classes:
      Graphics g = context.mock(java.awt.Graphics.class);

    posted on 2007-12-05 10:54 劉錚 閱讀(909) 評論(0)  編輯  收藏 所屬分類: Jmock

    <2025年7月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    導(dǎo)航

    統(tǒng)計

    留言簿(1)

    文章分類(141)

    文章檔案(147)

    搜索

    最新評論

    主站蜘蛛池模板: 国产免费观看视频| 国产午夜无码精品免费看动漫| 午夜免费福利视频| 亚洲va中文字幕无码久久| 久久高潮一级毛片免费| 2022中文字字幕久亚洲| 久久久久免费视频| 亚洲av中文无码乱人伦在线r▽ | 亚洲精品9999久久久久无码| 中文字幕无码成人免费视频| 自拍日韩亚洲一区在线| 24小时免费直播在线观看| 亚洲欧美国产日韩av野草社区| 午夜影视在线免费观看| 亚洲第一se情网站| 亚洲日本一区二区三区在线不卡| 成人福利在线观看免费视频| 亚洲区小说区激情区图片区| 久久久久免费看成人影片| 亚洲国产成人精品无码区在线秒播| 最近中文字幕免费mv视频7| 亚洲AV无码国产一区二区三区| 亚洲国产成人a精品不卡在线| 国产在线播放线91免费| 亚洲一本综合久久| 女人18毛片a级毛片免费| 青青久久精品国产免费看| 亚洲成AV人片在线观看ww| 91精品国产免费久久久久久青草| 亚洲欧美成人综合久久久| 久久国产成人精品国产成人亚洲| 久久免费国产精品一区二区| 国产色在线|亚洲| 亚洲国产午夜中文字幕精品黄网站 | 国产亚洲大尺度无码无码专线 | 亚洲精品无码专区久久| 亚洲精品网站在线观看不卡无广告| 国产成人免费ā片在线观看老同学| 亚洲高清中文字幕综合网| 国产免费131美女视频| 四虎影视成人永久免费观看视频 |