コンポーネント(エンドポイント)が書かれたキャメルプロジェクトがあります。ルート (mycomponent:somename) で使用されます。コンポーネントが終了した後、ルートの単体テストが失敗し始めました。(独自のクライアントが書かれたいくつかの http 通信を使用します) 「サーバーに接続できません...」、「プロパティを読み取れません....」というエラーが表示されます。
したがって、エンドポイントは、この目的で使用したダイレクトに置き換えられていないようです。私が必要としているのは、ルートの実際の単体テストです。いくつかのテストを実行するために Web サービスを開始する必要はありません。ルート テストだけを行う必要があります。
サンプルコード:
public class MyTest extends CamelTestSupport {
@Override
public String isMockEndpoints() {
return "*";
}
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
includeRoutes(new MyRoute());
}
};
}
@Test
public void testRouteToRd() throws Exception {
context.getRouteDefinitions().get(0).adviceWith(context, new AdviceWithRouteBuilder() {
@Override
public void configure() throws Exception {
replaceFromWith("direct:incomponent"); // replacing from
}
});
getMockEndpoint("mock:myconnector:outcomponent").expectedMessageCount(1);
template.sendBody("direct:incomponent", OK_MESSAGE); // and sending to direct
assertMockEndpointsSatisfied();
}
}
なぜこの構成で実際のコンポーネントにアクセスし始めたのですか (コンポーネントが完成する前にうまく機能していました) 誰か助けてくれませんか?
申し訳ありませんが、コピーペーストと構成での「再生」が役に立ちました。交換済み
@Override
public String isMockEndpoints() {
return "*";
}
と:
@Override
public String isMockEndpointsAndSkip() {
return "*";
}
そして、私のすべてのテストは今では良いです。しかし、なぜこれが起こっているのかまだ理解できません。エンドポイントを直接に置き換え、メッセージを直接に送信します
では、大変申し訳ありませんが、良くない質問でしたら、閉じてください。