GithubProfileTest
と
GithubProfileValidationTest
の負のテストの問題を抱えている
。UncheckedIOExceptionではなく、異なる予想される例外のスローされ
リファクタの後で、正のテストケースは両方のテストクラスを通過しますが、特定の例外を予期する負のテストケースは失敗します。 影響を受けるリファクタされたコードはGithubProfile.assets
メソッドとGithubProfile.asset
メソッドです。
私はこのように見てassets
方法リファクタリング:this.asset
コールがProfile.ConfigException
をスローするように期待されているさまざまなテストケースでは
public Map<String, InputStream> assets() throws IOException {
final XML xml = this.read();
final List<XML> nodes = xml.nodes("/p/entry[@key='assets']/entry");
return new MapOf<>(
new Mapped<>(
nodes,
input ->
new MapEntry<>(
input.xpath("@key").get(0),
this.asset(input.xpath("text()").get(0))
)
)
);
}
を。代わりに、assetsメソッドを呼び出すと、テストはUnable to evaluate the expression Method threw 'java.io.UncheckedIOException' exception
で失敗し、Profile.ConfigException
は単に無視/非表示になります。
MapOf
は何とか評価するために失敗したと思われる、またはそれ自体がUncheckedIOException
を上げるthis.assetメソッドの呼び出しが発生することを「非表示」、例外、ので、私はこれを修正することができないんだとProfile.ConfigException
を上げています。
デバッグ時にUncheckedIOException
には、Profile.ConfigException
の情報が含まれていません。
この動作や解決策が得られる理由についてのヒントはありますか?
「UncheckedIOException」をスローするコードの唯一のコードは、あなたの 'read()'メソッドです。それは何をするためのものか? – fge