2011-05-21 157 views
2

我在C++/CLI中使用.NET中的单元测试框架来测试非托管C++代码。如何在Visual Studio单元测试框架中初始化测试类资源?

我想举个例子System::Random在整个测试方法中生成随机值。

我需要把它作为一个成员变量在我的测试类吗?

如果是,我可以在哪里放置初始化代码,导致产生的ClassInitialize()方法由于某种原因是静态的,并且它只能访问TestContext,我读取它仅用于使用来自某些外部源的测试数据。

回答

2

如果您需要它们可用于所有测试,您可以将静态属性添加到您的测试类并在ClassInitialize()方法中初始化它们。如果你想让他们每次测试初始化​​,那么使用TestInitialize()方法会更好。

您确定要在单元测试中使用随机值吗?通常你会想要使用已知的值(好值,坏值,边缘情况等),以便测试是可预测的。在知道预期行为(结果)的情况下,使用具有各种值的多个测试比使用随机值更为典型。

+0

正确的静态成员,我没有教过这个。在这种情况下,更好的方法是,在'ClassInitialize'中初始化静态成员,或者在常规构造函数中初始化非静态成员。 关于第二部分,是的,我同意。在编写单元测试时,我基本上都是初学者,基本上我测试的方法应该可以与任何整数一起工作,这就是为什么我教会使用随机的方法,因为它没有关系。 – sekmet64 2011-05-21 13:13:03

+0

@ sekme64 - 我会使用ClassInitialize或TestInitialize来使用构造函数;这取决于在每次测试之前是否需要重新设置什么。 – tvanfosson 2011-05-21 16:15:18

相关问题