我主要使用 Visual Studio 在 Windows 上使用 native C++ 进行开发。
很多时候,我发现自己创建了一个新函数/类或其他任何东西,我只想快速测试我刚刚编写的那段逻辑。
很多时候,我必须运行整个应用程序,这有时可能需要一段时间,因为有很多连接的部分。
是否有某种工具可以让我快速测试那段新代码,而不必运行整个应用程序?
即
假设我有一个包含大约 1000 个文件的项目,我要添加一个名为 Adder 的新类。 Adder 有一个方法 Add( int, int );
我只希望 IDE/工具允许我通过指定进入 Adder 对象的输入值来测试 Adder 类(无需创建新项目和编写虚拟 main.cpp) .同样,如果它允许我指定测试对象的预期输出,那就太好了。
如果 IDE/工具随后“记录”这些输入/预期输出集,并根据它们自动创建单元测试器类,那就更酷了。如果我添加更多的输入/输出集,它会继续构建输入/输出的历史记录。
或者这个怎么样:如果我启动实际应用程序,向它提供一些真实数据,并让 IDE/工具捕获进入被测试单元的完整输入,会怎样。这样,如果我在我的程序中发现了一些错误或者我想稍微更改它的界面,我可以快速重新开始我的测试。我认为这个功能会非常简洁,并且可以帮助开发人员快速测试/修改他们的代码。
我是在谈论已经存在的模拟对象/单元测试吗?
旁注:如果 Visual Studio 调试器具有“重放”技术,用户可以后退一步以找出问题所在,那就太好了。这样的调试器已经存在于此处:http://www.totalviewtech.com/
最佳答案
在 C++ 中开始静态单元测试非常容易 - three lines of code .
VS 有点差,因为你必须通过向导来创建项目来构建和运行测试,所以如果你有一千个类,你就需要一千个项目。因此,对于 VS 上的大型项目,我倾向于将项目组织成几个 DLL 以进行独立构建和测试,而不是将其组织成单一的 DLL。
可以在 python 中使用 swig 完成静态测试的替代方案,更类似于您的“戳和运球”脚本。将您的代码绑定(bind)到解释器,以及 python 的 doc tests .我自己没有一起使用过。同样,您需要一个单独的目标来构建 python 绑定(bind),另一个目标来运行测试,而不仅仅是一个简单的“运行此类”按钮。
关于c++ - 任何 IDE 或框架都可以帮助快速测试新代码而无需运行整个应用程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/540252/
总的来说,我对ruby还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0
我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚
如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby
Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack
使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta
在rails源中:https://github.com/rails/rails/blob/master/activesupport/lib/active_support/lazy_load_hooks.rb可以看到以下内容@load_hooks=Hash.new{|h,k|h[k]=[]}在IRB中,它只是初始化一个空哈希。和做有什么区别@load_hooks=Hash.new 最佳答案 查看rubydocumentationforHashnew→new_hashclicktotogglesourcenew(obj)→new_has
我想用ruby编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序
在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/