【发布时间】:2009-01-22 23:04:12
【问题描述】:
我正在阅读 Ron Jeffries 的 C# 极限编程冒险。他的主要示例是一个简单的 XML 文本编辑器。考虑到这本书的年代(2004 年出版),我怀疑他的很多初始编码,找到光标在哪一行以及插入点在哪里,可以用新的 TextBox 方法或属性替换。我是Visual Studio 2005。为了保持敏捷开发和XP的精神,我先写了一些测试:
[Test]
public void TestGetFirstCharIndexOfCurrentLine() {
String[] newlines = new string[] { "<P>one</P>", "<P>two</P>" }; //TextLength == 20
notepad.txtbox.Lines = newlines;
Expect(notepad.txtbox.SelectionStart, EqualTo(20));
Expect(notepad.txtbox.GetFirstCharIndexOfCurrentLine(), EqualTo(11));
Expect(notepad.txtbox.GetLineFromCharIndex(11), EqualTo(1));
}
(我很懒惰(呃……我的意思是我正在努力节省空间)。这段代码实际上结合了我在不同方法中实际运行的三个测试。)
无论如何,每个测试都会失败。首先,txtbox.SelectionStart 返回 0。这可能与文档建议的一致,但是当我在调试中逐步执行时,该值为 20。其他两个测试产生类似的结果;一个零,我期望一个正整数值。尤其是后两种情况,不符合我对文档的阅读。
我真的很感激我哪里出错了。
【问题讨论】:
标签: c# unit-testing