【问题标题】:Getting Assert to work in Visual C++ Unit Tests?让 Assert 在 Visual C++ 单元测试中工作?
【发布时间】:2011-09-08 01:56:46
【问题描述】:

我在我的 Visual C++ 项目中使用 Visual Studio 2008 的内置测试框架。我正在添加一个新的测试项目,然后是一个新的单元测试。但是,我不能使用 Assert 提供的任何功能。 Assert 出现在 Intellisense 中,但我对此无能为力。我已经在 Visual C# 中很好地完成了单元测试。我是不是忘了做什么?

编辑: 代码不多,因为我所做的一切都是由 Visual Studio 2008 自动生成的。以下是我正在做的步骤:

  1. 文件 -> 新建项目 -> Visual C++ -> 常规 -> 空项目
  2. 在解决方案资源管理器中右键单击解决方案 -> 添加 -> 新建项目...
  3. Visual C++ -> 测试 -> 测试项目
  4. 打开 UnitTest1.cpp(自动生成)
  5. 转到 TestMethod1()

从这里开始,当我尝试使用 Assert 类(如 Assert.AreEqual)时,我做不到。如果我在 Visual C# 项目中做同样的事情,它工作正常。

【问题讨论】:

  • 示例代码?编译错误?给我们一些信息

标签: visual-studio-2008 unit-testing c++-cli


【解决方案1】:

AreEqual 是 Assert 类中的静态方法。所以使用Assert::AreEqual(...)

【讨论】:

  • 谢谢!正是我需要的答案。
【解决方案2】:

http://msdn.microsoft.com/en-us/library/ms243171(VS.80).aspx

您是否尝试使用 [非托管] C++ 编写测试?如果是这样,您可以使用 CppUnit。

如果您尝试在托管 C++ 中执行此操作,您是否引用了 Microsoft.VisialStudio.QualityTools 程序集?

如果不是,你看到的 assert 或 Assert 可能分别是标准库和 MFC 的东西?

你并没有给我们太多的帮助。样本?您用于创建项目的项目类型?

【讨论】:

  • MSVC 带有一个单元测试框架,与所有单元测试库一样,它提供了一组 Assert 函数。
  • @jalf:托管 C++ 与否?提问者没说?你怎么知道的?有更好的答案吗?
  • msdn.microsoft.com/en-us/library/ms243171%28VS.80%29.aspx - 虽然 managed/native 可能与找出 OP 的问题有关,但框架可以同时测试两者(尽管测试必须以托管方式编写)
  • @jalf:我在编辑后的答案中发布了相同的链接。在我看来,提问者正在尝试用托管 C++ 编写测试,并且看到某种 [aA] ssert 并认为它们走在正确的轨道上。这在 MSTest 中是不可能的。如果这个答案真的具有误导性并且值得您的-1,我将删除它。但我很想了解我在帮助提问者方面缺少什么。例如,当您说“MSVC 附带”时,您指的是 C++ 特定的东西还是 .NET Microsoft.VisualStudio.QualityTools 库?如果提问者回答会很好:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-14
  • 1970-01-01
  • 1970-01-01
  • 2012-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多