我正在使用 Visual Studio 迈出测试驱动开发的第一步。我有一些关于如何使用 VS 2010 实现泛型类的问题。
首先,假设我想实现我自己的 ArrayList 版本。
我首先创建以下测试(在本例中我使用的是 MSTest):
[TestMethod]
public void Add_10_Items_Remove_10_Items_Check_Size_Is_Zero() {
var myArrayList = new MyArrayList<int>();
for (int i = 0; i < 10; ++i) {
myArrayList.Add(i);
}
for (int i = 0; i < 10; ++i) {
myArrayList.RemoveAt(0); //should this mean RemoveAt(int) or RemoveAt(T)?
//VS doesn't know. Any work arounds?
}
int expected = 0;
int actual = myArrayList.Size;
Assert.AreEqual(expected, actual);
}
我正在使用 VS 2010 的能力来命中
ctrl + .
并让它在旅途中实现类/方法。
.Add(10)
方法,VS 不知道我是打算使用泛型方法(因为类是泛型的)还是 Add(int number)
方法。有什么办法可以区分这个吗? MyStack
堆栈,我想测试在我推送和元素并弹出它之后,堆栈是否仍然是空的。我们都知道 pop 应该返回一些东西,但通常,这个测试的代码不应该关心它。 Visual Studio 会认为 pop 是一种 void 方法,实际上这不是人们想要的。如何处理?对于每种方法,我是否应该首先进行“非常具体”的测试,例如很明显该方法应该返回一些东西,这样我就不会产生这种歧义?即使不使用结果,我应该有类似 int popValue = myStack.Pop()
的东西吗? ? int
s,因为它们易于使用,但我是否还应该使用不同类型的对象进行测试?你通常如何处理这个问题? int val = MyClass.MyProperty
的东西我想明白(至少现在)我只想定义一个 setter/getter 。 谢谢
最佳答案
I see there is a popular tool called TestDriven for .NET. With VS 2010 release, is it still useful, or a lot of its features are now part of VS 2010, rendering it kinda useless?
如果您使用多种不同的单元测试框架之一( nunit 、 mbunit 、 xunit 、 csunit 等),它仍然很有用。
还有其他工具(如 Visual Nunit )为运行单元测试提供 Visual Studio 集成。
关于visual-studio - Visual Studio 2010 和测试驱动开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2844735/