ユニットテストでコンパイルエラーをどのようにしてテストするのですか?コンパイラエラーのユニットテスト
は、コードを考えてみましょう:
class ErrorTest
{
OtherClass& read_write() {
return other;
}
const OtherClass& read_only() const {
return other;
}
private:
OtherClass other;
};
にはどうすればREAD_ONLY()の割り当てをテストすることができますか?それは本当に重要だとしっかりと適切にコンパイルエラーを生成するためにチェックする必要があります?私は、主な質問は今、あなたはこの時点であなたのコードやコンパイラのことをテストしている
ErrorTest test;
OtherClass other = test.read_only();
test.read_write() = other.modify();
test.read_only() = other.modify(); /* This should error */
良い質問です。私は前に同じことを思った。しかし、本当に良い答えを見つけたことはありません。もちろん、ファイルをコンパイルしようとするスクリプトを書いて、エラーコードなどを確認することはできますが、それほどエレガントなソリューションはありません – jalf