TECHTOGOU

c# - C++ 中的可测试性设计

我想了解在C++中设计可测试应用程序的最佳方式,也许与C#相比(因为它是我的背景并且非常适合测试)我习惯于对接口(interface)、依赖项注入(inject)、控制框架的反转和模拟对象进行编码。由于C#有很多不同的语言特性,我不确定有多少模式仍然适用。我还认为C++的独特功能/限制可能会导致不同的测试策略。我看过单元测试框架,我喜欢GoogleTest,但编写新代码以使其尽可能可测试也很重要。是否有任何开源项目可以推荐为C++测试做对了吗?有没有更详细地讨论这个主题的书籍或文章?对其他框架/库的建议谢谢 最佳答案 我自己现在也处

Android 许可验证库和多个 Google 帐户

Android许可验证库是否支持登录多个Google帐户的设备?它是否使用第一个Google帐户来确定谁购买了应用? 最佳答案 我在许可证服务故障排除页面找到了答案。如何验证我的许可实现是否正确?将应用程序上传到市场之前如果Market上没有具有该软件包名称和版本代码的应用程序,请使用您的发布者帐户作为主帐户登录手机,设置测试响应,并验证您的应用程序是否针对这些响应正常运行。将应用程序上传到市场后如果您已将带有许可检查的应用程序上传到市场(无论应用程序的当前发布状态如何),请使用您的发布者帐户或许可测试帐户作为主帐户登录手机,设置测

c++ - -fvisibility=hidden 编译器未通过调试版本

我正在构建一个启用了GCC_INLINES_ARE_PRIVATE_EXTERN和GCC_SYMBOLS_PRIVATE_EXTERN的项目,因为我正在使用预先构建的带有这些标志的静态库。但是,当我为Debug构建项目时,-fvisibility=hidden未包含在编译器标志中,但在为Release构建项目时它确实包含在内。我是否需要打开任何其他标志才能实现此目的? 最佳答案 这是旧的,但冲突似乎来自启用可测试性设置。如果你关闭它,那么-fvisibility=hidden将正常工作。似乎启用可测试性比GCC_SYMBOLS_PR

c++ - C++ 中的单元测试

仅仅为了让一个类可测试就可以使用接口(interface)打破所有依赖关系吗?由于许多虚拟调用而不是普通方法调用,它在运行时涉及大量开销。测试驱动开发在现实世界的C++应用程序中是如何工作的?我阅读了WorkingEffectivelyWithLegacyCode并喜欢它非常有用,但没有跟上实践TDD的速度。如果我进行重构,我经常会因为大量的逻辑更改而不得不完全重写单元测试。我的代码更改经常会更改数据处理的基本逻辑。我看不出有什么方法可以编写不必在大型重构中更改的单元测试。可能有人可以向我指出一个使用TDD通过示例学习的开源C++应用程序。 最佳答案

c++ - 我是否应该让一个成员函数成为虚拟的只是为了让一个类可测试?

我正在研究一个简化版本如下所示的类:classHttp_server{public:voidstart(intport){start_server();std::stringcontent_type=extract_content_type(get_request());}private:voidstart_server(){...}std::stringget_request(){...}std::stringextract_content_type(conststd::string&request)const{...}};现在我想为extract_content_type编

c++ - MFC 应用程序的任何可测试架构或设计模式?

这个问题困扰了我一段时间。我正在为MFC应用程序寻找可测试的架构设计模式。请不要告诉我MFC已经是MVC或类似的东西,因为只要我们不能测试应用程序,它就没有任何意义。我理解经验法则是让它View/Document尽可能愚蠢并且使其他类可测试。但我想要更多细节。我怎样才能使View/Document尽可能愚蠢并将它们连接到其他可测试的类?首先,我想到了MVP,因为我在Windows.NET和Android应用程序中取得了一些成功。但在这个MFC案例中,我们也需要使Document变笨。这使事情复杂化。我需要一个可长期维护的有效架构。经验丰富的开发人员的任何建议将不胜感激。

java - 我是否应该使用依赖注入(inject)以获得良好的设计和可测试的代码?

我有一个表示图像的类:它称为Photography。构造函数如下所示:Photography::Photography(QStringoriginalPath,QStringappDirectory){this.originalPath=originalPath;this.appDirectory=appDirectory;}该类包含许多方法,如getTitle()、getCaption()、getSize()、isHorizo​​ntal()等有一个名为getThumbnailPath()的public方法,如下所示:QStringPhotography::getThumbnailP

java - 具有继承和混合的 Scala 可测试代码

我用Java开发了很多代码,并涉足Groovy和Haskell,现在这让我转向了Scala。我对Scala的功能方面感觉相对舒服,但我发现自己在Scala中的面向对象设计方面有点不稳定,因为它感觉与Java有点不同,特别是由于特征/混合。我的目标是编写尽可能可测试的代码,这在我的Java开发中一直转化为重点尽可能保持不变更喜欢通过构造函数注入(inject)状态总是寻求组合而不是继承(受thispostonSO的严重影响,并且可能对其react过度)现在我正试图在这个新的Scala领域站稳脚跟,但我很难弄清楚我应该在这里采用什么方法,特别是我是否应该开始对某些东西使用继承目的。Prog

java - 静态方法使 Java 成为一种伪函数式语言?

我一直在考虑postMiskoHevery认为Java中的静态方法可测试性已死。我不想讨论可测试性问题,而是更多地讨论静态方法的概念。为什么人们如此讨厌它?的确,我们没有闭包(但我们有一个有点笨拙的匿名函数)、lambdas和作为一流对象的函数。在某种程度上,我认为静态方法可用于将函数模拟为一流对象。 最佳答案 函数式编程的一个特点是数据的不变性。static确实暗示您不需要表示状态的对象(实例),所以这不是一个糟糕的开始。但是,您在类级别上确实有状态,但是您可以将其设置为final。由于(静态)方法根本不是一等函数,您仍然需要像匿

Javascript 单元测试 - DOM 操作

我对Javacript单元测试还很陌生。一件事一直困扰着我。在测试javascript时,我们经常需要进行DOM操作。看起来我正在对Controller/组件中的方法/函数进行单元测试,但我仍然需要依赖模板中的HTML元素。一旦更改了id(或在我的测试用例中用作选择器的属性),我的测试用例也需要更改!这不会违反单元测试的目的吗? 最佳答案 javascript单元测试中最困难的部分之一不是测试,而是学习如何构建代码以使其可测试。您需要通过明确分离可测试逻辑和DOM操作来构建代码。我的经验法则是:如果您正在测试任何依赖于DOM结构的东