JMock簡単入門
まず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のインタフェース定義を持つには、次の手順に従います.
3.junitテストを実現しましょう.
注意:
JMockシミュレーションクラスを使用する条件:
1、パラメータのないコンストラクタ;
2、コンストラクタはpublicです.
ここで説明します.
仮想subscriberのクラスを構築し、その代わりにします.
実行効果が代替されているかどうかを見てみましょう.手順は簡単です.
例を挙げると、Subscripterのクラスがあります.彼はインタフェースだけを実現していません.私たちはPublisherのクラスを持っています.このクラスのテストは、この伝説のSubscripterクラスを使用します.このとき、実現していないか、テストの干渉を減らしたいときは、Subscripterというクラスをシミュレートすることができます.くだらないことは言わないで、この例を実現しましょう.
1.プロジェクトを構築し、jmockをダウンロードして、次のライブラリをプロジェクトにロードします(ここではjunit 4の方法を使用します).
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);
}});
実行効果が代替されているかどうかを見てみましょう.手順は簡単です.