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

unit-testing - 在单元测试方面什么不能测试?

在项目的哪些部分编写单元测试几乎或实际上是不可能的?数据访问?FTP?

如果这个问题有答案,那么 %100 覆盖率就是一个神话,不是吗?

0 投票
7 回答
1019 浏览

c++ - 如何将 TDD 方法与 VisualStudio 集成?

我有兴趣了解在 Visual Studio 2005(专业版)中使用 TDD 和 C++ 单元测试的经验

首先是一些背景。我们有一个相当大的项目,其中大部分是在 Linux 上使用 CppUnit 进行单元测试开发的。该项目分为几个库,每个库都有自己的一组测试。我有一个简单的脚本来编译库,编译测试套件,然后运行测试。因此,在对代码进行更改后,我只需从命令行运行“test”并运行测试。

现在,大多数开发人员都在 Windows 上使用 Visual Studio 2005 来开发这个产品。当然,他们仍然可以使用 nmake 从命令行运行测试,但涉及额外的步骤,我希望有一个更集成的解决方案。

所以我的问题有两个部分。

首先,在大型代码库上布置测试代码的最佳方式是什么?在一个解决方案中创建多个测试项目,每个库一个是正常的吗?

其次,是否有任何工具可以将 CppUnit 测试集成到 Visual Studio 中?正确设置依赖项后,测试项目应该运行测试,但目前结果仍显示在命令窗口中。

0 投票
4 回答
1964 浏览

testing - 行为驱动还是测试驱动开发?

我最近听说过 BDD,发现它与 TDD 非常相似。

您使用这两个中的哪一个(如果有)?

各自的优缺点是什么?

0 投票
7 回答
28752 浏览

c# - 使用 C# 和 RhinoMocks 进行测试驱动开发的最佳实践

为了帮助我的团队编写可测试的代码,我想出了这个简单的最佳实践列表,以使我们的 C# 代码库更具可测试性。(其中一些观点提到了 Rhino Mocks 的限制,这是一个 C# 的模拟框架,但这些规则也可能适用于更普遍的情况。)有没有人有任何他们遵循的最佳实践?

为了最大限度地提高代码的可测试性,请遵循以下规则:

  1. 先写测试,再写代码。原因:这可确保您编写可测试的代码,并且每一行代码都得到为其编写的测试。

  2. 使用依赖注入设计类。原因:你不能模拟或测试看不见的东西。

  3. 使用 Model-View-Controller 或 Model-View-Presenter 将 UI 代码与其行为分开。原因:允许在最小化无法测试的部分(UI)的同时测试业务逻辑。

  4. 不要编写静态方法或类。 原因:静态方法很难或不可能隔离,Rhino Mocks 无法模拟它们。

  5. 对接口进行编程,而不是类。原因:使用接口澄清了对象之间的关系。接口应该定义对象从其环境中需要的服务。此外,可以使用 Rhino Mocks 和其他模拟框架轻松模拟接口。

  6. 隔离外部依赖。原因:无法测试未解决的外部依赖项。

  7. 将您打算模拟的方法标记为虚拟。原因:Rhino Mocks 无法模拟非虚拟方法。

0 投票
2 回答
582 浏览

database - 在哪些情况下,您会针对内存数据库而不是开发数据库进行测试?

您何时针对内存数据库与开发数据库进行测试?

另外,作为一个相关的附带问题,当您使用开发数据库时,您是使用个人开发数据库、集成开发数据库还是两者都使用?

此外 ++,对于单元测试,您何时使用内存数据库而不是模拟您的存储库/DAL 等?

0 投票
4 回答
1546 浏览

asp.net-mvc - 如何使用 ASP.NET MVC 对网页授权进行单元测试?

假设您有一个只能由该个人资料的所有者访问的个人资料页面。此个人资料页面位于:

用户/个人资料/{userID}

现在,我想为了防止其他用户访问此页面,您可以构建 UserController 类的 Profile 函数来检查当前会话的身份:

HttpContext.Current.User.Identity.Name

如果 id 与 url 中的匹配,则继续。否则,您将重定向到某种错误页面。

我的问题是你如何对这样的东西进行单元测试?我猜你需要使用某种依赖注入而不是控制器中的 HttpContext 来进行检查,但我不清楚最好的方法是什么。任何意见将是有益的。

0 投票
4 回答
796 浏览

tdd - 开发 N 层应用程序。朝什么方向?

假设您正在实现一个用户故事,该用户故事需要在从 UI(或服务外观)到 DB 的所有层中进行更改。

你往哪个方向移动?

  • 从 UI 到业务层到存储库到数据库?
  • 从数据库到存储库到业务层到 UI?
  • 这取决于。(什么 ?)
0 投票
13 回答
1274 浏览

tdd - TDD。什么时候可以继续?

在进行TDD时,如何判断“对于此类/功能的测试已经足够了”?

即你什么时候可以告诉你完成了所有边缘情况的测试?

0 投票
5 回答
1833 浏览

java - 是否有类似 ZenTest/Autotest for Java 和 JUnit 的东西

我之前使用 ZenTest 和 autotest 来处理 Ruby 项目,并且我曾经使用它们来进行测试驱动开发,例如这种配置。我有一个我目前正在使用 Java 进行的项目,我想知道 Java 世界中是否有类似的东西可以达到相同的效果。

0 投票
14 回答
1594 浏览

tdd - 测试驱动开发适合初学者吗?

扩展这个关于我如何学会从问题描述到代码的问题 两个人提到了 TDD。

对于初学者来说,进入 TDD 会更好(并避免将来的坏习惯?)或者对于了解什么是编程语言的阶段来说太复杂了?