Tag: tdd

TDD – 如何真正开始思考TDD?

我一直在阅读关于敏捷,XP方法和TDD的内容。 我一直在项目中指出它需要做TDD,但是大多数testing都是以某种方式进行集成testing,或者在项目过程中TDD被忘记了,以尽快完成代码。 所以,就我的情况而言,我写了unit testing,但是我发现自己会先写代码,而不是写testing。 我觉得有一个思想/devise/范式的变化实际上是巨大的。 所以,尽pipe人们真的相信TDD,但是实际上,由于时间压力/项目可交付成果,您最终会回到过去的风格。 我有几个class,我有纯粹的unit testing代码,但我似乎无法继续这个过程,当嘲笑进入图片。 另外,我有时会看到:“为它写一个testing”并不是太简单。 你们觉得我应该怎么处理呢?

嘲笑与嘲笑的嘲笑框架

在嘲笑框架中,你可以嘲笑一个对象或间谍。 这两者之间有什么区别,什么时候我应该使用一个呢? 例如,看看mockito,我发现使用间谍和嘲笑也有类似的情况,但我不确定两者之间的区别。

unit testing通过

我们试图将unit testing引入到我们当前的项目中,但似乎没有工作。 额外的代码似乎已经成为一个维护头痛,因为当我们的内部框架变化,我们必须周旋,并修复任何挂起它的unit testing。 我们有一个抽象基类,用于unit testing我们的控制器,作为调用子类的抽象方法实现的模板,即框架调用Initialize,所以我们的控制器类都有自己的Initialize方法。 我曾经是一个unit testing的倡导者,但似乎并没有在我们目前的项目上工作。 任何人都可以帮助确定问题,以及我们如何使unit testing为我们工作,而不是反对我们?

BDD和TDD为node.js?

什么是用于BDD和TDD与node.js? 我习惯使用Cucumber + RSpec。 什么是node.js的一个很好的组合? 谢谢

unit testingbash脚本

我们有一个除了Java代码之外还有一些bash脚本运行的系统。 由于我们试图testing可能会中断的所有事情,而这些bash脚本可能会中断,所以我们要testing它们。 问题是很难testingbash脚本。 有没有testingbash脚本的方法或最佳做法? 或者我们应该退出使用bash脚本并寻找可testing的替代解决scheme?

什么是“存根”?

所以,继续我的新年决心,让更多的TDD,我现在开始更多地与Rhino Mocks合作 。 我所热衷的一件事是确保我真正理解我正在接触的内容,所以我想检查一下我对目前为止所看到的内容的理解(我认为将它作为一个资源)。 什么是“存根”?

MVCvalidationunit testing

当我在MVC 2预览版1中使用DataAnnotationvalidation时,如何testing我的控制器操作在validation实体时是否在ModelState中input了正确的错误? 一些代码来说明。 首先,行动: [HttpPost] public ActionResult Index(BlogPost b) { if(ModelState.IsValid) { _blogService.Insert(b); return(View("Success", b)); } return View(b); } 这是一个失败的unit testing,我认为应该通过,但不是(使用MbUnit&Moq): [Test] public void When_processing_invalid_post_HomeControllerModelState_should_have_at_least_one_error() { // arrange var mockRepository = new Mock<IBlogPostSVC>(); var homeController = new HomeController(mockRepository.Object); // act var p = new BlogPost { Title = "test" }; // date and content should […]

我如何在PHP中编写unit testing?

我已经读到了各地的情况,但由于某种原因,我似乎无法弄清楚我应该如何testing一些东西。 有人可能会张贴一个示例代码,他们将如何testing它? 如果它不是太麻烦:)

Android中的@SmallTest,@MediumTest和@LargeTest注解的目的是什么?

我是Android的新手,我已经看到使用这些注释的示例代码。 例如: @SmallTest public void testStuff() { TouchUtils.tapView(this, anEditTextView); sendKeys("HELP SPACE ME PERIOD"); assertEquals("help me.", anEditTextView.getText().toString()); } 这个注释完成了什么?

使用C#和RhinoMocks进行testing驱动开发的最佳实践

为了帮助我的团队编写可testing的代码,我想出了这个简单的使我们的C#代码库更可testing的最佳实践列表。 (有些观点指的是Rhino Mocks的限制,这是C#的嘲讽框架,但规则也可能更普遍适用。)有没有人有任何最佳实践,他们遵循? 要最大化代码的可testing性,请遵循以下规则: 先写testing,然后写代码。 原因:这可以确保您编写可testing的代码,并且每行代码都会为其编写testing。 使用dependency injectiondevise类。 原因:你不能模拟或testing什么是看不到的。 使用Model-View-Controller或Model-View-Presenter将UI代码与其行为分开。 原因:允许testing业务逻辑,而不能testing的部分(UI)被最小化。 不要写静态方法或类。 原因:静态方法很难或不可能被隔离,Rhino Mock无法嘲笑它们。 编程接口,而不是类。 原因:使用接口澄清对象之间的关系。 接口应该定义一个对象在其环境中需要的服务。 此外,使用Rhino Mocks和其他模拟框架可以轻松地模拟界面。 隔离外部依赖。 原因:无法testing未parsing的外部依赖关系。 将虚拟的方法标记为虚拟的方法。 原因:Rhino Mocks无法模拟非虚拟方法。