小编mgh*_*ghz的帖子

TDD:为什么,如何和现实世界测试驱动代码

首先,请耐心等待我的所有问题.我之前从未使用过TDD,但越来越多的人意识到我应该这样做.我已经阅读了很多帖子以及如何指导TDD,但有些事情仍然不清楚.用于演示的大多数示例都是数学计算或其他一些简单的操作.我也开始阅读Roy Osherove关于TDD的书.以下是我的一些问题:

如果您的解决方案中有一个对象,例如Account类,那么测试在其上设置属性的好处是什么,例如帐户名,那么您断言您设置的内容是正确的.这会失败吗?

另一个例子,一个账户余额,你用余额300创建一个对象,然后你断言余额实际上是300.那怎么会失败?我在这里测试什么?我可以看到用不同的输入参数测试减法操作将是一个更好的测试.

我应该为实际测试对象做什么?方法或属性?有时您还在基础架构层中将对象作为服务.对于方法,如果您有一个三层应用程序,并且业务层正在为某些数据调用数据层.在那种情况下测试了什么?参数?数据对象不为空?在服务的情况下呢?

接下来关于真实生活项目的问题,如果你有一个绿色项目,你想用TDD开始它.你先从什么开始?你是否将你的项目划分为特征然后每个特征,或者你实际上是随意挑选的,然后你从那里开始.

例如,我有一个新项目,它需要一个登录功能.我是从创建用户测试或帐户测试或登录测试开始的.我先从哪一个开始?我先在该课上测试什么?

假设我决定创建一个具有用户名和密码以及其他一些属性的User类.我应该首先创建测试,修复所有构建错误,运行测试以使其失败,然后再次修复以获得绿灯然后重构.那么我应该在该课程上创建的第一批测试是什么?例如,它是:

  • Username_Length_Greater_Than_6
  • Username_Length_Less_Than_12
  • Password_Complexity

如果断言长度大于6,那么测试代码的方式如何呢?如果它小于6,我们测试我们抛出错误吗?

如果我对我的问题重复,我很抱歉.我只是想开始使用TDD并且我无法改变心态.谢谢你,希望有人可以帮我确定我在这里缺少什么.顺便问一下,有没有人知道我可以加入任何关于TDD的讨论组或聊天?

tdd

15
推荐指数
1
解决办法
2204
查看次数

SPA或客户端应用程序中的授权

因此,我一直在努力寻找有关如何在SPA应用中解决授权而非身份验证的最佳实践.

假设我有一个带有api后端的客户端MVC(angular,vuejs等),我们如何管理使用应用程序的授权?

例如,用户和管理员都可以访问,但是一个人具有比另一个更多的访问权限(视图中的功能).如果他们在客户端使用相同的UI,您如何根据访问权限保护和呈现正确的视图?可以选择获取他们的角色/声明列表,并根据它确定在客户端呈现的内容,但由于这是基于JS,因此可以轻松规避.

对我来说,客户端mvc应用程序可能不是正确的解决方案,SSR应用程序更适合这一点.如果是这样的话,移动案例怎么样?如何在不开发实际原生应用的情况下为移动设备解决同样的问题?

authorization role-base-authorization single-page-application

8
推荐指数
1
解决办法
1018
查看次数