测试驱动开发 - 如何在没有实现代码存在之前编写测试

 mobiledu2502889521 发布于 2023-02-08 11:42

我正在学习TDD,但很难接受它,因为它不是直截了当的.

我无法回答的问题是" 如何在任何实现代码存在之前编写测试? ".

如果我们的目标类/目标方法/目标参数类型/目标返回类型不存在,

在测试中编写代码时我们指的是什么.我们如何开始编写测试?

如果我们所能编写的只是实际实现代码之前的测试方法名称,那么测试如何失败?

每个人都说出为什么,但不是如何

我已经尽力找到资源,详细说明在生产代码之前编写测试但是,假设我错过了良好的资源,他们中的大多数都充满了陈词滥调,解释了为什么TTD比专注于采用它的实践更重要.

一个用例示例.

我们假设我们正在为大学开发软件,我们的用例是课程注册.

为了简单起见,让我们将这个讨论限制在内

场景:"学生每学期最多可以注册3门课程"

测试服务层和dao层.

伪代码

ENROLL(studentId, courseId)
    //check if student enrolled in less than 3 courses in the same semester as given courseId belongs in.
    //if yes, enroll him/her.
    //if not, return an error.

上面的实际实现可能涉及几个涉及服务,daos等的类.

请问您能解释一下如何逐步测试 - 开发它吗?如果您使用TDD实现这一点,您是如何逐步完成的.

我希望这可以帮助像我这样的许多挣扎.

1 个回答
  • 在与EnrollingService相同的包中的src/test/java中创建EnrollingServiceTest类

    class EnrollingServiceTest {
        private EnrollingService enrollingService;
    
        @Before 
        public void init() {
               enrollingService = new EnrollingService();
        }
    
        @Test
        public void testEnroll() {
               boolean result = enrollingService.enroll(1l, 1l);
               assertTrue(result);
        ...
    

    IDE(我假设您正在使用IDE)显示错误 - EnrollingService不存在.

    将光标指向EnrollService - IDE将提供创建类 - 让它在src/main/java中创建

    现在IDE说缺少注册(长,长)方法 - 让IDE为你创建它.

    现在IDE显示没有错误.运行测试 - 它失败了.转到注册并开始实施逻辑

    等等...

    2023-02-08 11:45 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有