我一直在探索BDD / DDD,并试图提出一个适当的Repository模式的实现。 到目前为止,很难就实现这一目标的最佳方式达成共识。 我试图把它归结为以下变化,但我不确定哪个是最好的方法。 作为参考,我正在用NHibernate构build一个ASP.MVC应用程序作为后端。 public interface IRepository<T> { // 1) Thin facade over LINQ T GetById(int id); void Add(T entity); void Update(T entity); void Remove(T entity); IQueryable<T> Find(); // or possibly even T Get(Expression<Func<T, bool>> query); List<T> Find(Expression<Func<T, bool>> query); } public interface IRepository<T> { // 2) Custom methods for each query T […]
我正试图在Ruby中使用cucumber + capybara来处理BDD web开发,而且我陷入了一个简单的任务 – 只是检查表中的行数。 我试图达到的目的是沿着以下方向: page.should have_xpath("//table[@id='myTable']") find("//table[@id='myTable']/tr").length.should == 3 但是这不起作用(缺less方法长度),我无法find一种方法来对表长度断言。 任何想法任何人(请容易对我来说,我是一个ruby诺贝) 提前致谢 尼尔
我正在使用SpecFlow,我想编写一个如下所示的场景: Scenario: Pressing add with an empty stack throws an exception Given I have entered nothing into the calculator When I press add Then it should throw an exception 这是calculator.Add()这将抛出一个exception,所以我如何处理标记为[Then]的方法?
在没有Rails的情况下使用RSpec进行TDD的过程是什么? 我需要一个Gemfile吗? 它只需要rspec吗? Ruby 1.9.3
我正在决定是否应该使用Cuke4Nuke或SpecFlow。 什么是每个人的利弊? 意见哪个更好,为什么。 谢谢!
我正在写我的第一个MSpec规格,我想要一些指导。 我把规格留在了“待定”状态,但上下文已经填写完毕。 有什么改进吗? 作为参考,这是故事和第一个场景: Story: "Blog admin logs in to the system" As a blog writer I want to be able to log in to my blog So that I can write posts and administer my blog Scenario: "Logs in from the login page" Given the user enters in correct credentials for a user in […]
有人可以解释这两个平台之间的区别吗? 既是BDD的一部分,但为什么我应该使用一个或其他,或两者在一起? 感谢您的答案
尝试使用新的VS2010 Professional安装来运行SpecFlow。 创build了一个新的控制台应用程序,并添加了对NUnit和SpecFlow的引用。 创build了一个SpecFlowfunction。 创build具有默认模板代码的.feature。 现在我尝试运行这个testing,但我不明白如何。 当我右键点击项目(在顶层)时,鼠标下拉菜单中没有“运行testing”选项。 没有正确的安装SpecFlow,我是否缺less一些引用或一些其他工具,我需要安装?
我是BDD的新手,但是我发现它非常有趣,想用BDD开发我的下一个项目。 谷歌search和屏幕截图之后,我仍然在现实生活中遇到很多有关BDD的问题。 1.声明式还是强制式场景? 我所看到的大多数时间场景都是用UI来编写的(势在必行)。 Scenario: Login Given I am on the Login-page When I enter 'AUser' in the textbox 'UserName' And I enter 'APassword' in the textbox 'Password' And I click the 'Login' button Then I should see the following text 'You are logged in' 我发现这些testing非常脆弱,他们没有提到点击button的商业价值。 我认为它的噩梦来维持。 为什么大多数例子使用命令式场景? Scenario: Login (declarative) Given I am not […]
我正在学习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,那么你怎么一步一步地做到这一点。 我希望这可以在未来帮助像我这样的斗争。