开发者学堂课程【RocketMQ 知识精讲与项目实战(第二阶段):Rest 方式测试下单】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/703/detail/12443
Rest 方式测试下单
创建测试类
Name:com.itheima.test.OrderWebTest
指定 RunWith 与入口类,注入 RestTemplate,发起请求,注入路径,发起 http 请求进行测试
@Runwith(SpringRunner.class)
@SpringBootTest(classes = orderwebApplication.c1ass)
public class orderwebTest {
@Autowired
private RestTemplaterestTemplate;
@value(""$ishop.order.baseURI}")
private string baseURI;
@Value("${shop.order.confirm}")
private string confirmorderPath;
@Test
public void confirmorder(){
Long coupouid = 345988230098857984L;
Long goodsId = 345959443973935104L;
Long userId = 345963634385633280L;
Tradeorder order = new Tradeorder();
order.setGoodsId(goodsId);
order.setUserId(userId);
order.setCouponId( coupouId);
order. setAddress("北京");
order.setGoodsNumber(1);
order.setGoodsPrice( new BigDecimal( val: 1000));
order.setshippingFee(BigDecimal.ZERO);
Result result = restTemplate.postForEntity( url: baseURI + confirmorderPath,order,Result.class)
system.out.print1n(result);
测试与 OrderService 中主体代码一致,通过 http 请求,请求 order-web,接收 TradeOrder 对象,以 json 形式发入
将数据分装到 order bean 中使用 restTemplate 将对象提交到请求中,内部将格式转化成 json 格式,能够进行接收
优惠券是未使用状态
商品信息
商品有1000个,单价为1000
用户余额还原成1000
进行 http 请求测试
启动5个服务端和1个web端
发起 http 请求测试
查看结果,出现问题
当前请求路径连接被拒绝
BaseURI 组合了 server.host、server.port、server.servlet.path 三个路径
验证,打断点
重新执行
未将端口8080解析
在 Spring boot 中会存在重复的参数,名字为 server.port
所有 server.port 取得为内部值为-1的参数值
自己命名 order.port=8080,避免冲突
重新测试
执行成功且显示路径
数据库中
用户余额减掉100,变成900,因为在下单时指定使用100,所以减掉100,优惠券被使用,商品的库存减1
有库存操作日志
订单为已确认状态