问题标签 [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 投票
11 回答
20922 浏览

unit-testing - 开始 TDD - 挑战?解决方案?建议?

好的,我知道已经有关于开始使用 TDD 的问题.. 但是,我想我知道一般的共识是这样做,但是,我似乎有以下问题进入游戏:

  • 在使用集合时,是否仍然会测试明显的添加/删除/插入是否成功,即使基于泛型等我们有点“知道”它会起作用?
  • 有些测试似乎需要很长时间才能实现。例如,在处理字符串输出时,有没有“更好”的方法来处理这类事情?(例如,在解析之前测试对象模型,将解析分解为小操作并在那里进行测试)在我看来,您应该始终测试“最终结果”,但这可能会有很大差异并且设置起来很乏味。
  • 我没有要使用的测试框架(工作不会支付一个),所以我可以“练习”更多。有什么好的可以免费用于商业用途的吗?(目前我正在使用好的'ol Debug.Assert :)
  • 可能是最大的..有时我不知道会发生什么..我的意思是,你得到了绿灯,但我总是担心我可能会错过测试..你是否更深入地尝试打破代码,或者保留它并等待它稍后全部崩溃(这将花费更多)..

所以基本上我在这里寻找的不是“只是做它”,而是更多“我做了这个,遇到了问题,通过这个解决了它们”..个人经验:)

0 投票
10 回答
4240 浏览

visual-studio-2008 - How to Ease TDD with MSTest / VS2008

I've read time and time again that TDD/test first is more difficult with MSTest than it is with other testing frameworks such as nUnit, MBUnit, etc... What are some suggested manual workarounds and/or 3rd party bits that you suggest when MSTest is the only option due to infrastructure policy? I'm mainly wondering about VS 2008 Team Suite, but I suppose tips for VS 2008 Pro on up would be suitable too since some MSTest functionality is now included with those versions as well.

0 投票
6 回答
699 浏览

c# - 我应该如何测试从 DataReader 填充列表的方法?

所以我正在处理一些对手动数据库操作很重的遗留代码。我试图在这里保持一些表面上的质量,所以我会尽可能多地使用 TDD。

我正在处理的代码需要填充,比方说List<Foo>来自 DataReader,它返回正常运行的 Foo 所需的所有字段。但是,如果我想验证代码实际上是否为每个数据库行返回一个列表项,我正在编写如下所示的测试代码:

这也相当乏味且很容易损坏。

我应该如何处理这个问题,这样结果才不会是一团糟的脆弱测试?

顺便说一句,我目前正在为此使用 Rhino.Mocks,但如果结果足够令人信服,我可以更改它。只要替代品不是 TypeMock,因为他们的 EULA 对我上次检查的口味来说有点太吓人了。

编辑:我目前也仅限于 C# 2。

0 投票
19 回答
49851 浏览

unit-testing - 单元测试中的随机数据?

我有一位同事为用随机数据填充其字段的对象编写单元测试。他的理由是它提供了更广泛的测试范围,因为它会测试很多不同的值,而普通测试只使用一个静态值。

我给了他很多不同的理由来反对这一点,主要是:

  • 随机值意味着测试不是真正可重复的(这也意味着如果测试可以随机失败,它可以在构建服务器上这样做并中断构建)
  • 如果它是一个随机值并且测试失败,我们需要 a) 修复对象 b) 每次都强制自己测试该值,所以我们知道它有效,但由于它是随机的,我们不知道该值是什么

另一位同事补充道:

  • 如果我正在测试异常,随机值将无法确保测试最终处于预期状态
  • 随机数据用于刷新系统和负载测试,而不是用于单元测试

还有其他人可以添加我可以给他的其他理由来让他停止这样做吗?

(或者,这是一种可接受的编写单元测试的方法,而我和我的其他同事错了吗?)

0 投票
58 回答
1079708 浏览

java - 如何测试具有私有方法、字段或内部类的类?

如何使用 JUnit 测试具有内部私有方法、字段或嵌套类的类?

仅仅为了能够运行测试而更改方法的访问修饰符似乎很糟糕。

0 投票
5 回答
23634 浏览

java - 在单元测试中检查工厂的结果

我开发了一些具有相似行为的类,它们都实现了相同的接口。我实现了一个创建适当对象并返回接口的工厂。我正在为工厂编写单元测试。你得到的只是对象的接口。测试工厂是否正常工作的最佳方法是什么?

我想知道 Java 的答案,但如果有跨语言的解决方案,我想知道。

2号。在答案中,会像其他答案一样完成吗?如果是这样,我也会将另一个答案标记为已接受,并改写我的问题以解决返回接口的工厂并且您不知道实现该接口的具体类的类型,以及您确实知道具体类是什么的情况用过的。

0 投票
4 回答
440 浏览

visual-studio - UI和事件测试

所以我知道单元测试是必须的。我认为 TDD 是添加新模块时要走的路。即使,在实践中,我实际上并没有这样做。真的有点像注释代码。

真正的事情是,我正在努力弄清楚如何对 UI 和更一般的生成事件的对象进行单元测试:用户控件、异步数据库操作等。

我的很多代码都与 UI 事件有关,以至于我什至看不到如何开始单元测试。

那里一定有一些引物和入门文档吗?一些提示和技巧?

我通常在 C#(2.0 和 3.5)中工作,但我不确定这是否与问题严格相关。

0 投票
8 回答
16777 浏览

php - PHP 中的测试驱动开发

我是一名使用 PHP 的网络开发人员。我在 C# 桌面应用程序中使用测试驱动开发的经验有限。在那种情况下,我们使用 nUnit 作为单元测试框架。

我想在新项目中开始使用 TDD,但我真的不知道从哪里开始。

对于基于 PHP 的单元测试框架,您有什么建议,对于刚接触 TDD 概念的人来说,有哪些好的资源?

0 投票
4 回答
2185 浏览

unit-testing - 我如何成为 TDD 的“测试感染者”?

我一直在阅读有关“测试感染”的人的信息,这意味着他们不仅“获得”了 TDD,而且没有它也活不下去。他们已经“改头换面”了。问题是,我怎么会这样?

0 投票
1 回答
1026 浏览

unit-testing - MbUnit 附带的这个 Icarus 是什么?

我现在不得不多次安装MbUnit ,而且它一直带有一个叫做

Gallilo Icarus GUI Test Runner

我尝试使用它,认为它只是对 MbUnit GUI 的更新,但它不会检测到我的 MbUnit 测试,有时甚至无法正确打开程序集。

也许我只是忽略了它,但我也无法在他们的网站上找到很多答案,除非它与新的测试平台有关。

有人可以给我一个更好的解释这是什么吗?