如果您(或您的组织)渴望彻底地testing您的代码,您如何衡量您的努力的成功或质量? 你使用代码覆盖率,你的目标是什么百分比? 你觉得像TDD这样的哲学比衡量指标有更好的影响吗?
项目编写unit testing的哪些部分几乎或者是不可能? 数据访问? FTP? 如果有这个问题的答案,那么%100的覆盖率是一个神话,不是吗?
我试图testing一个场景,一方面,匿名用户应该立即从WebSocket连接断开连接,另一方面,经过身份validation的用户应该停留在WebSocket连接中。 第一种情况很容易通过使用下面的代码来testing。 身份validation过程不起作用。 对于会话存储,我使用Cookie身份validation与数据库结合使用: Symfony PDO会话存储 。 这一切工作正常,但是当涉及到使用身份validation来testing所描述的行为时,我不知道如何在testing中对用户进行身份validation。 作为一个客户端,我使用PawlasynchronousWebsocket客户端。 这看起来如下: \Ratchet\Client\connect('ws://127.0.0.1:8080')->then(function($conn) { $conn->on('message', function($msg) use ($conn) { echo "Received: {$msg}\n"; }); $conn->send('Hello World!'); }, function ($e) { echo "Could not connect: {$e->getMessage()}\n"; }); 我知道,作为第三个参数,我可以将头信息传递给“连接”方法,但我无法find一种方式,以便客户端连接,并在ws握手期间cookie正确传递。 我想到了这样的事情: 通过创build身份validation令牌来validation客户端 我使用序列化用户在数据库的会话表中创build一个新条目 我将创build的cookie作为第三个parameter passing给connect方法 这是我认为会起作用的理论,但用户总是在websocket端匿名。 这里到目前为止的理论代码: // … use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; class WebsocketTest extends WebTestCase { static $closed; protected function setUp() […]
我们正在构build一个使用websockets的群聊function。 我们要testing我们目前的基础设施可以支持多less个连接。 基本上归结为如何模拟websocket。
我有一个Web应用程序,使用d3库来处理一些复杂的基于SVG的可视化。 我有自动testing我的服务器端代码和JavaScript模型(我在我的JavaScript中使用MVC架构)。 这些在每次提交时都在Jenkins CI服务器上运行。 现在我需要弄清楚如何testing我的观点。 别人怎样解决这个问题,你用什么工具? 我有一些想法… 将生成的SVG序列化到文件并与基线进行比较 自动捕捉浏览器图像,并做一个图像差异 别的东西? 谢谢!
对于客户,我们需要为集成testing生成详细的testing报告,这不仅表明一切都是绿色的,而且testing也是如此。 我的同事和我是懒惰的人,我们不想破解电子表格或文本文件。 为此,我想了一种方法来logging在每个@Test注释方法和每个testing类上使用JavaDoc注释的更复杂的集成testing。 对于testing人员来说,查看哪个要求,Jira门票或testing链接到什么以及testing实际要做什么是一个很好的帮助。 我们也想把这个信息提供给我们的客户。 现在最大的问题是:我们如何才能将每个方法和每个testing类的JavaDoc放入JUnit报告中? 我们使用JUnit 4.9和Maven。 我知道,每个assertXXX()都有一个描述,但是我们确实需要一个好的HTML列表作为结果,或者是一个PDF文档,其中列出了所有的类和文档,下面是所有的@Test方法及其描述,testing时间,结果如果失败了,原因何在。 还是有另一种select生成奇特的testing脚本? (或者我们应该启动一个OpenSource项目!);-)) 更新:我问另一个关于如何添加一个RunListener到Eclipse的问题,让它也在Eclipse中报告时,开始在那里。 使用自定义TestRunnerbuild议的解决scheme是另一种可能的testing结果报告。 看看: 我如何在Eclipse中使用JUnit RunListener?
我正在使用CMake和我的项目,并build立一个连续/夜间build设的cdash服务器。 一切正常,通过设置一个crontab,我们每小时/每晚的构build/testing结果自动上传到我们的cdash服务器。 我的下一步是将testing覆盖率报告添加到构build。 我在这里find这个文档http://www.cmake.org/Wiki/CTest:Coverage,但坦率地说,这有点远离实用指南。 目前我已经添加了所需的标志(而不是-fprofile-arcs -ftest-coverage ,我发现–coverage更好),编译过程生成.gcno文件。 但后来我卡住了。 命令 make NightlyCoverage 似乎没有做任何事情。 有谁能告诉我下一步该做什么? 我想要的结果就是在做make NightlyCoverage ,覆盖报告生成并上传到cdash服务器。
我一直在为一个项目创build一个testing套件,虽然我意识到获得100%的覆盖率并不是应该努力的指标,但是代码覆盖率报告中有一些奇怪的地方,我希望它澄清。 看截图: 因为被testing的方法的最后一行是return ,所以最后一行(它只是一个右括号)显示为从未执行,因此整个方法在总览中被标记为未执行。 (要么,要么我没有正确阅读报告。) 完整的方法: static public function &getDomain($domain = null) { $domain = $domain ?: self::domain(); if (! array_key_exists($domain, self::$domains)) { self::$domains[$domain] = new Config(); } return self::$domains[$domain]; } 有没有这个原因,或者是一个小故障? (是的,我阅读了如何获得PHPUnit的100%代码覆盖率 ,不同的情况虽然相似。) 编辑: 通过报告,我注意到在代码中其他地方的switch语句也是如此。 所以这个行为至less在一定程度上是一致的,但是对于我来说却是莫名其妙的。 EDIT2: 我在OS X上运行:PHPUnit 3.6.7,PHP 5.4.0RC5,XDebug 2.2.0-dev
我最近遇到了不同的教程,人们使用mock和mock_model函数。 在RSpec控制器教程中,他们使用mock_model函数,但在RSpec的文档中 ,只有mock函数,但没有mock_model 我试着自己去做一些testing,但是我没有发现任何真正的区别,因为当我使用这两个函数中的任何一个时,一切正常,那么是否还有什么区别呢?
我听说在开发使用数据库的应用程序时,你应该做数据库unit testing。 数据库unit testing的最佳实践是什么? 在进行dbunit testing时,主要关心什么?如何做到“正确”?