if-else条件での結果@Valid
のバインディング結果をJunit、Mockitoテストケースに書き込む方法は?junit mokitoテストケースの記述方法
@RequestMapping(value = "/scriptfile", method = RequestMethod.POST)
public String create(
@Valid ScriptFile scriptFile,
BindingResult result,
ModelMap modelMap
)
{
if (scriptFile == null)
throw new IllegalArgumentException("A scriptFile is required");
if (result.hasErrors()) {
modelMap.addAttribute("scriptFile", scriptFile);
modelMap.addAttribute("showcases", ShowCase.findAllShowCases());
return "scriptfile/create";
}
scriptFile.persist();
return "redirect:/scriptfile/" + scriptFile.getId();
}
上記の例でJunitm Mockitoテストケースを書くにはどうすればよいですか?
私は:A)beforeメソッドでmock()を呼び出す代わりに、@Mockを使用します。 B)彼の例と一致するようにしてください。 create()は1ではなく3つの引数をとります。 C)目標は、1)方法の公開契約をテストし、2)その上で、生産クラスのすべての経路をテストすることであることを強調する。最後に、** ModelMapを模擬することが本当に必要かどうか疑問です。 「通常の」実装を使用できない場合は、オブジェクトをモックするだけです。私は、単に地図を渡してそれに応じて設定できることを願っています。 – GhostCat
ありがとう、私はIDEでそれを検証せずにちょうど私の記憶からそれを書いていた:)。私はModelMapが嘲笑されるべきではないと思っていますが、コード全体がなくてもわかりません。 –