我对单元测试的好处深信不疑,我想开始将这个概念应用到用PHP编写的大型现有代码库中。不到10%的代码是面向对象的。我查看了几个单元测试框架(PHPUnit、SimpleTest和phpt)。但是,我还没有找到任何测试程序代码的示例。对于我的情况,最好的框架是什么?有没有使用非OOP代码对PHP进行单元测试的示例? 最佳答案 您可以对程序化PHP进行单元测试,没问题。如果您的代码与HTML混合在一起,您绝对不会倒霉。在应用程序或验收测试级别,您的过程PHP可能依赖于超全局变量($_POST、$_GET、$_COOKIE等)的值来确定行
内存段-BSS、堆栈、堆、数据、代码/文本(还有吗?)。假设我有一个128MB的RAM,谁能告诉我:为每个内存段分配了多少内存?他们从哪里开始?请指定地址范围或类似内容以更清楚。哪些因素影响应该从哪里开始? 最佳答案 这个问题取决于使用的变量数量。由于您没有指定什么编译器或语言甚至操作系统,因此很难确定!这一切都取决于负责应用程序内存管理的操作系统。总之,这个问题没有明确的答案,想想这个,编译器/链接器在运行时,请求操作系统分配一block内存,那个分配取决于有多少变量,有多大,变量的范围和用途。例如,这个简单的C程序,在一个名为s
内存段-BSS、堆栈、堆、数据、代码/文本(还有吗?)。假设我有一个128MB的RAM,谁能告诉我:为每个内存段分配了多少内存?他们从哪里开始?请指定地址范围或类似内容以更清楚。哪些因素影响应该从哪里开始? 最佳答案 这个问题取决于使用的变量数量。由于您没有指定什么编译器或语言甚至操作系统,因此很难确定!这一切都取决于负责应用程序内存管理的操作系统。总之,这个问题没有明确的答案,想想这个,编译器/链接器在运行时,请求操作系统分配一block内存,那个分配取决于有多少变量,有多大,变量的范围和用途。例如,这个简单的C程序,在一个名为s
我正在使用SimpleTest,一个基于PHP的单元测试框架。我正在测试将处理从数据库存储和检索网站评论的新代码。我不知道如何构建项目来测试数据库访问代码。我正在寻找有关在PHP应用程序中测试数据库代码的最佳实践的任何建议。例子真的很棒。进一步阅读的网站很棒。谢谢你。:) 最佳答案 这是一个老问题,但我想我会添加一些我们在这方面的具体经验。其他海报在技术上是正确的,这是一种集成测试形式,但从我的角度来看,MySQL中的逻辑通常太多,无法在单元测试中删除。如果您像我们一样,拥有严重依赖MySQL的大型复杂服务(每个服务通常有多个表),
好像Selenium之间比较的很少/WatiN和SimpleTest(它也具有网络测试功能)。我试用了Selenium,发现GUI非常适合创建测试,因为您可以看到正在发生的事情并进行记录,而无需手动输入所有命令。至于运行测试,Selenium比SimpleTest复杂得多。对于SimpleTest,您只需运行执行所有测试的PHP脚本(客户端或浏览器端)。这意味着无论您使用什么浏览器或浏览器设置,您只需转到测试URL,它就会正常工作。这里有用的是一些使用Selenium或WatiN的人的评论:为什么Selenium如此有名?换句话说,与SimpleTest相比,例如使用Selenium的
如何回滚失败的Rails迁移?我希望rakedb:rollback会撤消失败的迁移,但是不,它会回滚先前的迁移(失败的迁移减去一)。并且rakedb:migrate:downVERSION=myfailedmigration也不起作用。我遇到过几次,这非常令人沮丧。这是我为复制问题所做的一个简单测试:classSimpleTest结果:==SimpleTest:migrating=====================================================--add_column(:assets,:test,:integer)->0.0932s--add_c
如何回滚失败的Rails迁移?我希望rakedb:rollback会撤消失败的迁移,但是不,它会回滚先前的迁移(失败的迁移减去一)。并且rakedb:migrate:downVERSION=myfailedmigration也不起作用。我遇到过几次,这非常令人沮丧。这是我为复制问题所做的一个简单测试:classSimpleTest结果:==SimpleTest:migrating=====================================================--add_column(:assets,:test,:integer)->0.0932s--add_c
我的项目是在AndroidStudio上创建的普通Android项目。我在谷歌上搜索了很多以运行单个测试(SimpleTest中的测试,在这种情况下为1个测试),每个人都说我应该这样做./gradlew-Dtest.single=SimpleTesttest在我的根文件夹中。或者我在我的内部项目文件夹中做了../gradlew-Dtest.single=SimpleTesttest我尝试了很多这样的方法,但它总是运行我拥有的所有测试。(所有类中的11个测试)我的build.gradle有问题还是我遗漏了什么?这是我的build.gradle文件。buildscript{reposito
我正在为Drupal6项目编写一些测试代码,在使用其他语言和框架(如RubyonRails或Django)之后,我无法相信这些测试运行起来有多慢。Drupal.org认为这个问题是垃圾邮件,不会给我一种证明我是人类的方法,所以我认为SO是下一个问这样的问题的基地,并且对我的问题进行健全性检查测试方法。此要点中的以下测试代码相对简单。http://gist.github.com/498656简而言之,我是:创建几个内容类型,创建一些角色,创建用户,以用户的身份创建内容,检查他们是否可以编辑内容检查它是否对匿名用户可见这是我从命令行运行这些测试时的输出:Drupaltestrun-----
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭9年前。Improvethisquestion我是simpletest的super粉丝因为这是我所知道的。它对模拟和网络测试有很好的支持。但我总是害怕停滞不前,所以任何有说服力的转换论据都将不胜感激。 最佳答案 我认为两者都不会很快消失。Simpletest由一小群参与其中的人维护。PHPUnit似乎拥有更大的用户群,这可以算作转换的一个理由。不过,我对Simpletest很满意。