问题标签 [tdd]

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.

0 投票
3 回答
3753 浏览

ruby-on-rails - 独立测试rails部分视图

我正在使用带有标准rails 2.1项目的测试/单元。我希望能够独立于任何特定的控制器/动作来测试部分视图。

似乎ZenTest 的 Test::Rails::ViewTestCase会有所帮助,但我无法让它工作,与 view_test http://www.continuousthinking.com/tags/view_test类似

谷歌出现的大多数东西似乎都已经过时了,所以我猜它并不真正适用于 Rails 2.1

对此非常感谢的任何帮助。

谢谢,罗兰

0 投票
5 回答
8445 浏览

tdd - 我应该练习“mockist”还是“经典”TDD?

我已经阅读(并重新阅读)Martin Fowler 的Mocks Aren't Stubs。在其中,他定义了两种不同的 TDD 方法:“Classical”和“Mockist”。他试图回答“那么我应该成为古典主义者还是模仿者? ”这个问题,但他承认他从未在“除了玩具之外的任何东西”上尝试过模仿者 TDD。所以我想我会在这里问这个问题。好的答案可能会重复 Fowler 的论点(但希望更清楚)或添加自 Fowler 上次于 2007 年 1 月更新文章以来他没有想到的或其他人提出的论点。

0 投票
7 回答
1386 浏览

tdd - 作为一名“mockist”TDD 从业者,我是否应该在与被测方法相同的类中模拟其他方法?

在阅读 Martin Fowler 的Mocks Aren't Stubs之后,我发现我一直在以“mockist”的方式练习 TDD。

但我想知道,即使在 mockist TDD 中,如果一个人可以把嘲笑做得太过分。

这是Python 风格的伪代码的更新示例:

confirm_or_create_connection() 方法创建到服务器的连接。

我在两个测试中测试了与此类似的方法,这两个测试都模拟了 confirm_or_create_connection() 和 sync() (即使它们都是同一个类中的方法)。在一个测试中,mock confirm_or_create_connection() 返回 True 并且测试确认 sync() 被调用,而在另一个测试中 mock confirm_or_create_connection() 返回 False 并且测试确认 sync() 没有被调用。

这合理吗?或者我应该模拟 confirm_or_create_connection() 和 sync() 调用的对象?(我已经对这两种方法进行了其他测试。)

请不要通过解释我应该练习“经典” TDD 来回答这个问题。这是另一个问题的答案:我应该练习 mockist 还是经典 TDD?

0 投票
2 回答
4553 浏览

java - 第一次失败测试后如何使junit测试停止

有没有办法让运行 junit 测试在测试失败后停止?

0 投票
2 回答
228 浏览

oop - 当您单独设计对象模型时,您使用了哪些技术?

因此,毫无疑问,构建领域模型是我认为当你作为团队来处理它时最好的事情。甚至让非技术人员和“业务”成员参与建模会议。当你把合适的人放在一个房间里并在白板上敲定东西时,可以快速完成很多事情。但是你没有那种奢侈的时候呢?当您必须单独构建复杂的域模型时怎么办?在过去的一个月左右,我一直在这样做,并做了以下事情:

  1. 从名词识别开始,然后使用 Class-Role-Collaborations 分析关系
  2. 寻找可用于细化模型、Party 等的分析模式。
  3. 一旦我掌握了基础知识,我就会搞定一个 IDE 并开始编写 XUnit 测试以表明该模型让我可以做我想做的事情

虽然这些技术运作良好,但我不确定它们是否像真正的协作努力一样有效。我认为很容易被一个概念冲昏头脑,后来才意识到它违反了 x 或 y 要求。在隔离工作时,您使用了哪些技术来确保您的对象/域模型符合目标?

0 投票
1 回答
141 浏览

unit-testing - 快速犀牛帮助

有人可以看看这段代码并告诉我是否有任何明显的原因它不应该工作?当在我的代码中调用 service.getResponse 时,模拟框架只返回 null,而不是我指定的对象。

0 投票
2 回答
9554 浏览

iphone - Test Driven Design for iPhone Native apps

I'm experimenting with the iPhone SDK and doing some TDD ala Dr. Nic's rbiPhoneTest project. I'm wondering how many, if any, have been successful using this or any other testing framework for iPhone/Cocoa? More important, I'd like to know how to best assert a proprietary binary request/response protocol. The idea is to send a binary request over the network and receive a binary response. Requests and responses are created using byte and'ing and or'ing. I'm using the golden copy pattern to test my request. Here's what I have so far. Don't laugh as I'm new to btoh Objective C and Ruby:

0 投票
3 回答
2477 浏览

c# - 如何在单元测试期间设置数据结构的内部状态?

我正在用 C# 编写一个数据结构(使用斐波那契堆的优先级队列),我试图将它用作我对 TDD 很陌生的学习经验。

我知道每个测试应该只测试一个类,这样一个单元的失败不会让我与多个测试失败混淆,但是当数据结构的状态很重要时,我不确定如何做到这一点一个测试。

例如,

如果其中一个EnqueuePeek坏了,这个测试就会失败。

我在想我可以以某种方式让测试手动设置底层数据结构的堆,但我不确定如何在不向世界公开实现的情况下做到这一点。

有一个更好的方法吗?依赖其他部分好吗?

我有一个SetUp地方,只是为了简单起见。

0 投票
5 回答
1324 浏览

unit-testing - 管理单元测试的维护负担

编码测试优先,我发现我的代码可能有 3/4 是单元测试;如果我真的很极端,并且除了修复失败的单元测试之外没有编写任何代码,那么这个比率会更高。维护所有这些单元测试给代码更改增加了巨大的惯性。早些时候,我把它吸起来并修复它们。一旦有压力,我就会得到一个broken_unit_tests目录来重新访问“当有时间”。在设计有时间具体化之前,感觉就像 TDD 过早地实现了高覆盖率。

我如何找到摆脱这种困境的方法,并开始像我应该接受的那样迎接不断变化的需求?

0 投票
8 回答
1348 浏览

tdd - 您如何在不平凡的应用程序中进行 TDD?

我已经阅读了许多关于 TDD 主题的书籍和网站,它们都很有意义,尤其是 Kent Beck 的书。然而,当我尝试自己做 TDD 时,我发现自己盯着键盘想知道如何开始。有你使用的过程吗?你的思考过程是什么?你如何识别你的第一个测试?

大多数关于该主题的书籍都很好地描述了 TDD 是什么,但没有描述如何在现实世界的重要应用程序中实践TDD。你是怎么做TDD的?