midway icon indicating copy to clipboard operation
midway copied to clipboard

新需求:希望单元测试能够支持事务回滚

Open bestaone opened this issue 2 years ago • 3 comments

例如:

@Transactional()
describe('test/controller/user.test.ts', () => {

  let app: Application;
  let o: User;
  let at: string;
  let username='zhangsan', password='123456';

  beforeAll(async () => {
    try {
      app = await createApp<Framework>();
      const commonController = await app.getApplicationContext().getAsync<CommonController>(CommonController);
      const loginVO = await commonController.login({username, password})
      at = loginVO.accessToken;
    } catch(err) {
      console.error('test beforeAll error', err);
      throw err;
    }
  });
.```

bestaone avatar Jul 11 '22 02:07 bestaone

事务回滚后面是基于数据库级别的吧,dataSource.commit() 和 rollback 啥的。

czy88840616 avatar Jul 18 '22 02:07 czy88840616

事务回滚后面是基于数据库级别的吧,dataSource.commit() 和 rollback 啥的。

觉得midway从service层就应该针对事务给出比较系统的解决方案,单元测试只是个延伸。毕竟,对于后端服务来说,数据库是核心中的核心。

bestaone avatar Jul 18 '22 03:07 bestaone

service要管理事务就需要考虑事务的开启、关闭、服务间事务的传递等等,应该比较复杂。 做好了,那就可以放心替换 spring 那套了 哈哈

waitingsong avatar Jul 18 '22 07:07 waitingsong

需求 +1

希望能做个类似springboot的@Transactional()注解

Hank360 avatar Oct 13 '22 09:10 Hank360

需求 +1

希望能做个类似springboot的@transactional()注解

可以试试 https://midwayjs.org/docs/awesome_midway

waitingsong avatar Nov 21 '22 07:11 waitingsong