【问题标题】:OCUnit and C++ in Xcode 4?Xcode 4 中的 OCUnit 和 C++?
【发布时间】:2011-12-09 15:09:56
【问题描述】:

是否有人成功使用 OCUnit(如 Xcode 4.2 单元测试)和 C++ 代码?

经过数小时试图了解发生了什么,我现在非常确信使用 Xcode 4 和 OCUnit 测试来自 Objective-C++ 文件 (.mm) 的 C++ 代码存在一些重大缺陷

主应用程序(带有一些 C++ 业务逻辑的 Cocoa)编译良好! 微不足道的 .mm 测试类因奇怪的编译器错误而失败,在

  • 使用未声明的标识符(C++ 类名)
  • 使用不完整类型
  • C++ 需要所有声明的类型说明符

等等。基本上,它似乎与 C++ 位非常混淆。 测试文件抱怨的类从主应用程序编译得很好! 它们可以在主应用程序中被实例化。

有人遇到过并解决过这个问题吗?

谢谢, 周杰伦

【问题讨论】:

    标签: objective-c xcode xcode4


    【解决方案1】:

    当我使用 OCUnit 对 C++ 代码进行单元测试时,我必须使 C++ 实现文件成为单元测试目标的成员才能使单元测试正常工作。从项目导航器中选择一个 C++ 文件并打开文件检查器。文件检查器中应该有一个 Target Membership 部分。 Target Membership 部分有一个项目目标列表,每个目标旁边都有一个复选框。选中单元测试目标旁边的复选框,使文件成为单元测试目标的成员。

    【讨论】:

    • 对 - 我想这确实有道理。但是,我将我的主应用程序用作“测试主机”,并在链接首选项中将其设置为“捆绑加载”。我对 Xcode 4 单元测试的理解是,这应该允许源代码的单一编译,但同时使它们在单元测试目标中可用。
    • 您的设置方式应该适用于 Objective-C 代码。出现问题的是 C++ 代码。我所知道的是,如果正在测试的 C++ 文件不是单元测试目标的成员,则在使用 OCUnit 对 C++ 代码进行单元测试时会出现链接错误。
    • 叹息!根据我试图在单元测试类中访问的类,编译器有时甚至会走得那么远!然而,有些课程工作得很好……很狡猾。我将暂时搁置整个单元测试并使用 Xcode 5 重新访问。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-16
    • 2015-12-18
    • 2012-10-15
    相关资源
    最近更新 更多