|
|
@@ -705,6 +705,12 @@ class LsyOnboardingServiceTest {
|
|
|
* <p>异常类型是**实现者裁定的**(brief 允许二选一),这里是
|
|
|
* {@link BusinessException}(502):见 {@code LsyOnboardingService#createShop} 的 javadoc
|
|
|
* 里那段「为什么不是 {@code LeshouyingApiException}」。
|
|
|
+ *
|
|
|
+ * <p>★ 另断言**文案不含上游名号**(用户硬约束):这条 {@link BusinessException} 走到
|
|
|
+ * {@code GlobalExceptionHandler} 时是 {@code Result.of(code, message)},
|
|
|
+ * message **原样回给调用方**,所以它是会到达租户眼前的那一类串。
|
|
|
+ * 与 upload 侧 {@code assertUploadRejected400} 的做法对称 —— 把约束从注释里的约定
|
|
|
+ * 变成可执行的钉子。**只断言「不含名号」,不逐字钉住文案**:钉死会让以后每次改标点都要动测试。
|
|
|
*/
|
|
|
@Test
|
|
|
void createShop_missingShopNo_throws() {
|
|
|
@@ -716,6 +722,8 @@ class LsyOnboardingServiceTest {
|
|
|
BusinessException ex = assertThrows(BusinessException.class,
|
|
|
() -> service.createShop(validShopDto()), json + " ⇒ 必须抛,不得返回 null/空串");
|
|
|
assertEquals(502, ex.getCode(), json);
|
|
|
+ assertFalse(ex.getMessage().contains("乐收赢"),
|
|
|
+ json + " 的文案出现了上游名号(用户硬约束):" + ex.getMessage());
|
|
|
}
|
|
|
}
|
|
|
|