VB6のコメントじゃまやー。
VB6のコメントを消すプログラムをC#で作ってるなう。
単純にシングルクォート(VB6ではコメントの意味。C#でいうところの//に相当)以降を削除するロジックでは以下の場合にNG
<NG例>
s = "---I'm a student.---"
↓
s = "---I
<NG例終わり>
で、このNG例対策ができているかテストを書くとこんな感じ。
[TestMethod]
public void TestMethod3()
{
var actual = Program.DeleteComment("s = \"---I'm a student.---\"");
var expected = "s = \"---I'm a student.---\"";
Assert.AreEqual(expected, actual);
}
これでいいのだけども、VB6のコードにわざわざダブルクォーテーションをエスケープするという手間がかかっている。手間をかけるとそこに間違いがないとは言い切れない。できることなら、VB6のコードをコピペで済ませたい。
・・・
そうだ、リソースを使おう。
ここならVB6の生きたコードをそのままコピペできる。あとはユニットテストでこのリソースを拾えばOK。
[TestMethod]
public void TestMethod3()
{
var s = Properties.Resources.TestMethod3InputValue;
var actual = Program.DeleteComment(s);
var expected = Properties.Resources.TestMethod3ExpectedValue;
Assert.AreEqual(expected, actual);
}
ユニットテストの可読性?それは知らん(をい