问题标签 [bdd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
bdd - “标准” BDD 规范的存储库
你知道 BDD 规范的任何资源或库吗?
例如,几乎每个 Web 应用程序都有一个登录过程。一些“标准”功能可能是处理忘记密码、重置密码等。
我正在考虑诸如 BDD 规范的代码片段存档之类的东西,因此我们不必都从头开始编写它们。
asp.net-mvc - ASP.net MVC RTM 测试命名约定
我正在开发一个 asp.net mvc 应用程序并编写我的单元测试 BDD 样式。例如。
GetResource_WhenResourceFileExists_ShouldReturnResources()
但是当我为我的控制器编写测试时,我通常有两个同名的方法。一个没有参数用于获取请求,一个用于帖子。这里有没有人有一个好的命名约定来区分两者?
我能想到:
有什么意见吗?
asp.net-mvc - 领域驱动设计:何时创建聚合根?
我第一次尝试使用 ASP.NET MVC 项目实现 DDD,但我正在努力解决一些问题。
我有 2 个相关实体,一个公司和一个供应商。我最初的想法是 Company 是一个聚合根,而 Supplier 是 Company 的一个价值对象。所以我有一个公司的存储库,而供应商没有一个存储库。
但是当我开始构建我的应用程序时,我最终需要为供应商单独列出、创建和更新表单。这个列表很简单,我可以调用 Company.Suppliers,创建很糟糕,我可以做 Company.Suppliers.Add(supplier),但更新让我头疼。由于我只需要一个实体,而且我不能在表单之间准确地将其粘贴到内存中,因此我最终需要重新获取公司和所有供应商,并找到我需要绑定到它的那个,然后再次对其进行修改并保留它回到数据库。
如果我有供应商的存储库,我真的只需要做一个 GetOne。我可以通过将 GetOneSupplier 添加到我的 Company 或 CompanyRepository 来添加一些解决方法,但这似乎很垃圾。
所以,我真的想知道它是否实际上是一个值对象,而不是一个完整的域实体本身。
tldr;
需要单独的列表/创建/更新视图/页面是否表明实体应该是它自己的根?
nhibernate - BDD/DDD 在哪里放置基本实体验证的规范?
或者,基本实体验证是否被视为规范?
一般来说,将基本实体验证(名称不能为空或空,日期必须大于 xxx)保留在实际实体中还是在规范之外更好?
如果在规范中,那会是什么样子?您是否会对每个字段都有一个规范,或者将其全部包含在一个 EntityIsValid 类型规范中?
c# - Fluent NHibernate 有很多收集问题
更新: 似乎将我的映射从 Cascade.All() 更改为 Cascade.AllDeleteOrphan() 解决了我的大部分问题。我仍然必须在 OperatingState 上显式设置 Company 属性,这似乎没有必要,因为它被添加到 Company 实体中,但至少我可以在更新期间使用它。我仍然需要通过创建来测试它。
如果有人能解释这一点,那将是一个很大的帮助。
更新 2:在玩了一些之后,看来我并不总是必须指定父实体。
原帖
我有 2 个相关实体
它们的映射如下:
所以一切都很好,直到我尝试用新的运营状态更新公司
它爆炸了:
无法将值 NULL 插入到列“CompanyID”、表“ConsumerCartel.dbo.CompanyOperatingState”中;列不允许空值。插入失败。该语句已终止。
但是,如果我进行 2 次更改,它会起作用
除了旧状态之外,这将添加新状态,这不是我想要的。但是,即使明确设置公司(将其添加到映射列表时我不应该这样做?)如果列表被清除,它也不起作用。
此代码已在其他实体上运行,但不适用于此,因此我认为这应该按书面方式运行。我究竟做错了什么?
unit-testing - 如何以规范形式编写单元测试?
在许多情况下,我很难为类和方法想出一个好的单元测试名称。通常,我尝试遵循以下表格:
有些人将 Given、When 和 Then 放在要明确的部分上。我喜欢它,因为它似乎使单元测试更清楚地表明它正在测试什么。除了考虑 BDD 工具包之外,我还需要一些关于如何使用普通旧 xUnit 工具的建议。
我在这样的场景中遇到了特别困难:
当应用程序启动时,主窗体加载并且用户看到用户可以单击的链接列表。
或者更好的用例场景是:
用户可以从链接列表中选择一个链接。
我不确定,但我试图描述一种行为,您运行应用程序并且表单加载了可点击链接列表。并将其转化为单元测试。
什么是给定的,什么时候,然后呢?
testing - BDD的解释是什么?
此线程中引用了 BBD (Karl Seguin 的回答)。什么是 BDD?
design-patterns - 告诉我我的实体验证有哪些愚蠢之处(以及如何改进它)
我有一个实现接口 IValidatable 的 IEntity 接口
并且为了方便起见,我已经实现了我的 Entity 类,例如:
默认情况下,实体是有效的,直到 GetRuleViolations() 或 GetPersistenceRuleViolations() 被覆盖。
我知道这对于验证来说有点幼稚,所以除了任何错别字之外,还有什么可以改进的?