前提・実現したいこと
当方初学者でほぼ知識がないですが質問失礼します。
テストケースを作成しています。
where部分にセットヘッダーがない状況だと赤い波線が付きエラーになってしまいました。
セットヘッダー等がないものが呼び出された際にどのように書けばいいのかを教えていただけないでしょうか。
どうぞよろしくお願いいたします。
発生している問題・エラーメッセージ
Java.lang.NullPointExeption
該当のソースコード
Route.java @componrnt public class Route implements NwctrRoute { @Autowired Processor processor; @Override public void execute(Exchange exchange) throws Exception{ processor.process(exchange); } }
RouteTest.groovy class RouteTest extends Specification{ @Autowired Route route = new Route() def 'call execute(#name)'(){ setup: Processor mockProcessor = Mock() Exchange exchange = new DefaultExchange() when: route.execute(exchange) then: m1 * mockProcessor.process() where: name ||m1 'TEST' ||1
試したこと
セットヘッダーがある場合は下記のような形でうまくいきました。
Route.java @componrnt public class Route implements NwctrRoute { @Autowired Processor processor; @Override public void execute(Exchange exchange) throws Exception{ if(StringUtils.equals(exchange.getIn().getHeader("number",String.class),"0")){ processor.process(exchange); } }
RouteTest.groovy class RouteTest extends Specification{ @Autowired Route route = new Route() def 'call execute(#name)'(){ setup: Processor mockProcessor = Mock() ReflectionTestUtils.setField(route, "processor",mockProcessor) Exchange exchange = new DefaultExchange() exchange.getIn().setHeader("number",number) when: route.execute(exchange) then: m1 * mockProcessor.process() where: name |number ||m1 'TEST' |'0' ||1
補足情報(FW/ツールのバージョンなど)
spring boot 2.3.2
spock-core-1.3-groovy-2.4
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー