私は、テキスト復号化クラスのための単体テストのセットを書いています。私は正確にun-mappable の入力をCharsetDecoder
に処理するテストを書いてみたいと思います。しかし、私はこれを行うバイトバッファを開始しようとしています。例:私はアサーション(6行目)を渡すためにバイトのバッファ(ライン3)を開始することができますどのようにJava CharsetDecoderの 'un-mappable'入力はどのように生成できますか?
CharsetDecoder decoder = Charset.forName("utf-8").newDecoder();
decoder.onUnmappableCharacter(CodingErrorAction.REPORT);
ByteBuffer in = ?
CharBuffer out = CharBuffer.allocate(256);
CoderResult result = decoder.decode(in, out, true);
assertTrue(result.isUnmappable());
?
動作しないもの:
- NULL文字(例えば\ u0000のエンコードをUTF-8など)
- (UTF-8としてエンコード例えば\ U0001)制御文字
- 未定義の文字(例:utf-8としてエンコードされた\ u2065)
- 非文字(例:\ ufdd0はutf-8としてエンコードされます)
- 私的使用chara例えば、 \ ue000はutf-8としてエンコードされています)
- スタンドアロンの文字(例:utf-8としてエンコードされた\ u0305)。
JDKのCharsetDecoderクラスをユニットテストしていますか? –
私は自分のクラス内で 'CharsetDecoder'クラスを使用しています。クラスの動作をテストするために、 'CharsetDecoder'からの出力を生成したいだけです。 – johnstok