Tag: tdd

如何启动unit testing或TDD?

我读了很多让我相信我应该开始编写unit testing的文章,为了更容易的嘲讽,我也开始使用dependency injection(Unity),但是我还不太清楚在哪个阶段我应该开始写unit testing和嘲笑,以及如何或从哪里开始。 首选的方法是在TDD方法中描述的方法之前写unit testing吗? unit testing有没有不同的方法或方法?

当应用程序是100%CRUD时应用TDD

我经常遇到这个问题,我不知道如何克服这个障碍。 我真的想开始学习和应用testing驱动开发(或BDD,或其他),但似乎每个应用程序,我做我想申请的是几乎只有标准的数据库CRUD的东西,我不知道如何去应用它。 除了被保存到数据库之外,对象几乎不做任何事情。 没有复杂的逻辑需要testing。 有一个网关,我最终需要testing第三方服务,但我想先让应用程序的核心。 每当我尝试编写testing时,我最终只能testing基本的东西,我可能不应该在第一时间testing(例如getters / setters),但看起来不像对象有其他东西。 我想我可以testing持久性,但是这对我来说似乎是不合适的,因为你不应该实际打到一个数据库,但是如果你嘲笑它,那么你真的没有testing任何东西,因为你控制了吐出的数据。 就像我见过很多的例子,有一个模拟库通过循环和创build一个已知值的列表模拟数据库,testingvalidation“存储库”可以拉回一定的价值…我是没有看到像这样的testing点,因为当然“知识库”将返回该值; 它在课堂上是硬编码的! 那么我从纯TDD的angular度来看它(也就是说,在你写这个方法本身之前,你需要做一个testing,说你的版本库需要一个GetCustomerByName方法或者其他什么东西),但是这看起来好像跟随教条,除了它的“的方式“ – testing似乎没有做任何有用的东西除了certificate一个方法。 我在想这个错误的方法吗? 例如,运行一个工厂联系人pipe理应用程序。 我们有联系人,假设我们可以发送消息给联系人。 因此,我们有两个实体: Contact和Message ,每个实体具有共同的属性(例如名字,姓氏,联系人电子邮件以及主题和正文以及消息date)。 如果这些对象都没有任何真实的行为或需要执行任何逻辑,那么在devise这样的应用程序时如何应用TDD呢? 应用程序的唯一目的是拉取联系人列表并在页面上显示它们,显示发送消息的表单等。 我在这里没有看到任何有用的testing – 我可以考虑一些testing,但是为了说“看,我有testing!”,它们几乎是testing。 而不是实际testing某种逻辑(虽然Ruby on Rails可以很好地利用它,但我并不认为testingvalidation是一个“有用的”testing,因为它应该是框架为您处理的)

我如何unit testing持久性?

作为一个实践testing驱动开发的新手,我经常会对如何将持久性unit testing到一个数据库感到尴尬。 我知道在技术上这将是一个集成testing(而不是unit testing),但我想找出以下的最佳策略: testing查询。 testing插入。 如何知道如果插入失败了? 我可以通过插入然后查询来testing它,但是怎样才能知道查询没有错? testing更新和删除 – 与testing插入相同 做这些的最佳做法是什么? 关于testingSQL:我知道这可以做到,但是如果我使用像NHibernate这样的O / R映射器,它会在用于输出查询的别名中附加一些命名瑕疵,因为这有点不可预知,我不确定我可以testing。 我应该放弃一切,只要相信NHibernate? 我不确定这是谨慎的。

我应该使用TDD吗?

我是我(非常小)公司中唯一的开发人员,我即将开始使用适用于所述公司的中型ASP.NET Web应用程序。 我试图找出是否应该学习testing驱动开发(TDD),并在这个应用程序中实现它。 我需要很快开始开发新的应用程序,我很担心testing。 我已经编程了很多年,但从未做过任何unit testing。 我已经阅读了许多有关TDD的在线资源,但是我不确定是否对其有足够的了解,以使其在应用程序中有效。

TDD是否为了小项目而过度使用?

我最近读了很多关于TDD的文章,而且我现在还不是很卖东西。我做了很多小型的爱好项目(只有我),我担心TDD是否过分这样的事情。 虽然我看到了像TDD一样的3个开发者的小型开源项目。 (虽然我见过一些也有TDD的单人项目) 所以TDD总是一件好事,或者在什么样的门槛下使用?

meteor应用程序如何进行testing?

什么是testingmeteor框架开发的web应用程序的build议方法? 关于TDD最佳实践的meteor非官方常见问题解答条目非常短。

testing驱动的开发 – 如何在没有任何实现代码存在的情况下编写testing

我正在学习TDD,但由于不直截了当,所以很难接受。 我无法回答的问题是“ 如何在任何实现代码存在之前编写testing? ”。 如果我们的目标类/目标方法/目标参数types/目标返回types不存在, 在testing中编写代码时我们所指的是什么。 我们如何开始写testing? 如果我们所能写的只是testing方法的名称,那么testing失败了怎么办? 每个人都告诉为什么,但不是如何 我已经尽了最大的努力去寻找资源,详细说明在生产代码之前编写testing的问题,但是假设我错过了很好的资源,其中大多数都充满了陈词滥调,解释为什么TTD比重点关注采用它的实践更重要。 一个示例用例。 假设我们正在为大学开发一个软件,我们的用例是课程注册。 为了简单起见,让我们限制这个讨论 情景:“学生每学期最多可以选修3门课程” testing服务层和dao层。 伪代码 ENROLL(studentId, courseId) //check if student enrolled in less than 3 courses in the same semester as given courseId belongs in. //if yes, enroll him/her. //if not, return an error. 上面的实际实现可能涉及到几个涉及服务,道教等的类。 请你能解释一下如何进行testing驱动 – 逐步开发它? 如果你使用TDD来实现这个function,那么你怎么一步一步地做到这一点。 我希望这可以在未来帮助像我这样的斗争。

PHP中的testing驱动开发

我是一个使用PHP开发的Web开发人员。 我在使用C#桌面应用程序中的testing驱动开发方面有一些有限的经验。 在这种情况下,我们使用nUnit作为unit testing框架。 我想开始在新项目中使用TDD,但是我真的不知道从哪里开始。 你对基于PHP的unit testing框架有什么build议?对于TDD概念相当陌生的人来说,有什么好的资源?

TDD和BDD差异

我真的没有看到BDD和TDD之间的区别。 我的意思是,两者都只是testing,如果预期会发生。 我已经看到BDDtesting是如此充实,他们实际上算作TDDtesting,而且我看到TDDtesting非常模糊,以至于黑盒子里有很多代码。 让我们只是说我相当相信,两者都更好。 这里有一个有趣的问题。 我从哪说起呢? 我是否从高水平的BDDtesting开始? 我是否从低级TDDtesting开始?

AngularJS + Jasmine:比较对象

我刚刚开始为我的AngularJS应用程序编写testing,并在Jasmine中这样做。 这里是相关的代码片段 ClientController: 'use strict'; adminConsoleApp.controller('ClientController', function ClientController($scope, Client) { //Get list of clients $scope.clients = Client.query(function () { //preselect first client in array $scope.selected.client = $scope.clients[0]; }); //necessary for data-binding so that it is accessible in child scopes. $scope.selected = {}; //Current page $scope.currentPage = 'start.html'; //For Client nav bar $scope.clientNavItems = [ {destination: […]