これは主に概念的な質問です。私は(カスタム)TextAreaコントロールからテキストを削除するアルゴリズムを表すいくつかのクラスを持っています。私はそれをテストしたいと思います - アルゴリズムはもちろんです;)。私は私のテスト方法の読みやすさの欠如と心配です:多くのパラメータを持つTestCaseの可読性を向上させる方法
[TestCase(new[] { "some text asdf" }, 5, 0, 9, 0, "some asdf", new int[0])]
[TestCase(new[] { "some text", "", "totally unimportant texttext that stays" }, 0, 0, 24, 2, "text that stays", new[] { 0, 1, 2 })]
public void ShouldRemoveSelectedText(string[] lines, int colStart, int lineStart, int colEnd, int lineEnd, string notRemovedText, int[] expectedRemovedLines) {
var newLines = algorithm.RemoveLines(lines, new TextPositionsPair {
StartPosition = new TextPosition(column: colStart, line: lineStart),
EndPosition = new TextPosition(column: colEnd, line: lineEnd)
});
Assert.That(newLines.LinesToChange.First().Value, Is.EqualTo(notRemovedText));
CollectionAssert.AreEqual(expectedRemovedLines, newLines.LinesToRemove.OrderBy(key => key));
}
あなたはそれはかなり簡単なテストだ見ることができるように。私はIEnumerable
のstring
と選択領域のアルゴリズムを提供しますが、見ることは難しいです - 一見するとTestCase
パラメータはどこに行くのですか。私は疑問に思っていました - これを行うための "クリーンな"方法がありますか? 追記:私はこの1つのように単純なもののテストを持っていますが、さらに多くのパラメータを提供しなければなりません...念あたりより多くのラインを使用するように単純なアプローチがある