能否通过注解的方式去实现单元测试呢?

本贴最后更新于 1758 天前,其中的信息可能已经时过境迁

起因

单元测试在项目中的作用不言而喻,但是写单元测试、改了逻辑以后改单元测试,却也是比较烦人的

目前有很多的测试框架 比如 mockito 、easyMock 、powerMock 等,都已经帮助开发者解决了很多测试的难题,但是单元测试还是得自己写代码。

我就想知道目前有没有可以不用自己写太多代码,在运行的时候,去自动化测试的呢?

现在不是都有插件可以省去 get 、set 方法了嘛 ~

我的想法

  • 单元测试编写:
    直接省去,在需要测试的方法上加注解 比如 @WillTest, 同时也可以参数传入 需要 mock 的对象(借助于 powerMock 之类的 去 mock 对象出来),甚至可以再加一个注解,用于传入多个 用例

  • 测试:
    在项目打包、启动的时候,通过反射进行单元测试、覆盖大部分简单的测试,至于复杂逻辑 可以支持手写 powerMock 测试类……

问题

  • 需求: 是否会存在这样的需求? 对于我来讲,如果有那是再好不过了
  • 有没有: 目前是否已经有类似的东西出来了?
  • 可行性: 如果有这个需求,目前还没有,自己去实现的话,可是实现吗?在测试逻辑的时候,存在那些难点,哪部分是水比较深的呢?

如果有这么个玩意,你会喜欢吗

单选 公开 永不结束 10 票
卧槽,好东西啊
80% 8 票
无所谓,反正我也不做单元测试
10% 1 票
不用,什么垃圾玩意
10% 1 票
先看看别人用的好不好 了
0% 0 票

  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3169 引用 • 8207 回帖
  • 自动化测试
    12 引用 • 27 回帖 • 1 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    6677 引用 • 29939 回帖 • 242 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 这样的需求在绝大多数场景下都不是很适用。业务逻辑应该和测试逻辑分开的,比如在多数 java 的 web 项目中,业务代码都放在 main 目录下,测试都放在 test 目录下。如果通过注解来辅助测试,业务代码中会不可避免的多出来很多测试逻辑。试想一下每个 service 方法上面都有 @MockWith(...) @AssertThat(...) 之类的东西,代码的可读性会下降多少。

    2 回复
  • 其他回帖
  • 88250

    这个问题我也考虑过,不过想起既然 API 生成都可以这样“侵入”,测试这样来做也不是什么大问题,声明式的我觉得还是可以接受的。

  • someone9891

    powerMock 之类的都是 可以通过 cglib 之类的去派生新子类 甚至 去修改字节码文件来实现的,为什么不直接自动 搞一些 简单逻辑测试呢?
    如果这个不行的话,那能否 通过模版的方式自动生成测试类呢??

  • zwxbest

    用例和 mock 太多了,占了单元测试的百分之八十左右,放到业务代码上,太影响可读性和程序整洁了。

  • 查看全部回帖