JMock簡単入門

1852 ワード

まずJMockが何に使われているのかというと、最も簡単なのは、このクラスが実現していなくても、クラスをシミュレートするために使われていると思います.これは彼の名前に似ている.
例を挙げると、Subscripterのクラスがあります.彼はインタフェースだけを実現していません.私たちはPublisherのクラスを持っています.このクラスのテストは、この伝説のSubscripterクラスを使用します.このとき、実現していないか、テストの干渉を減らしたいときは、Subscripterというクラスをシミュレートすることができます.くだらないことは言わないで、この例を実現しましょう.
 
1.プロジェクトを構築し、jmockをダウンロードして、次のライブラリをプロジェクトにロードします(ここではjunit 4の方法を使用します).
  • jmock-2.5.1.jar
  • hamcrest-core-1.1.jar
  • hamcrest-library-1.1.jar

  • jmock-junit3-2.5.1.jar
    jmock-junit4-2.5.1.jar
    2.Subscripterのインタフェース定義を持つには、次の手順に従います.
     
    interface Subscriber {
        void receive(String message);
    }

     
    3.junitテストを実現しましょう.
    注意:
    JMockシミュレーションクラスを使用する条件:
    1、パラメータのないコンストラクタ;
    2、コンストラクタはpublicです.
     
    @RunWith(JMock.class)
    class PublisherTest {
        Mockery context = new JUnit4Mockery();
        
        @Test 
        public void oneSubscriberReceivesAMessage() {
            // set up
            final Subscriber subscriber = context.mock(Subscriber.class);
    
            Publisher publisher = new Publisher();
            publisher.add(subscriber);
            
            final String message = "message";
            
            // expectations
            context.checking(new Expectations() {{
                oneOf (subscriber).receive(message);
            }});
    
            // execute
            publisher.publish(message);
        }
    }

     
    ここで説明します.
     final Subscriber subscriber = context.mock(Subscriber.class);

    仮想subscriberのクラスを構築し、その代わりにします.
     context.checking(new Expectations() {{
                oneOf (subscriber).receive(message);
            }});

    実行効果が代替されているかどうかを見てみましょう.手順は簡単です.