在进行TDD时你应该测试什么?

时间:2014-05-20 03:02:49

标签: php android unit-testing junit tdd

我已经阅读了大约2个月关于TDD的几篇文章,我对我测试的内容有一个模糊的概念。我想到的第一个是测试输出:例如,使用PHP作为Web脚本语言,我测试我的JSON输出,以便来自服务器的响应是:

{
    "id":1,
    "name":"Chris",
    "token":"5ke3k62$5%34^%k3"
}

因此,如果响应与先前的JSON字符串匹配,则测试通过。我不是100%确定这是TDD的全部内容,但这是我所理解的。

那么让我们说一个移动应用程序。我想制作一个 hello world 应用。 Activity TextView {{1}}显示" Hello world"。什么是测试案例,我应该测试什么。请给我一些小例子,以便了解它的全部内容。

3 个答案:

答案 0 :(得分:0)

测试您希望代码执行的操作。如果你希望代码输出那个json,那么写一个测试来检查它。描述您希望代码执行的操作,例如。

Should_return_json_response
Should_return_name
Should_provide_a_token

在编写代码之前,您已经说出了代码要执行的操作。只要你得到了理想的结果,你如何在代码中实现这一目标。

答案 1 :(得分:0)

TDD是指编写单元测试的实践。单元测试的重点是测试小单元代码。通常,您希望测试对类上的公共方法的调用所做的状态更改。测试应涵盖该方法中的所有代码路径。如果您的单元测试依赖于跨越边界的依赖关系,例如拨打数据库,电子邮件,文件系统,从Web客户端到服务器,测试不再是纯粹的单元测试。它现在变成了集成测试。

我写了一篇博客文章,介绍了如何测试第一个TDD以构建测试中的代码。您可以阅读帖子here。我知道代码不是PHP,但概念是相同的。 Here是在php中完成的kata。

答案 2 :(得分:0)

TDD不是一种测试方式,而是一种开发方式。采用TDD:

  1. 测试您希望应用已经完成的一件事
  2. 运行测试以确保其失败(以防止误报,稍后)
  3. 在您完成测试通过之前,尽可能少编写代码
  4. 冲洗并重复
  5. 如果您不确定如何编写测试,请参阅第1步,参考您最喜欢的测试框架的文档。