You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在测试类中创建WebStoreNetwork记录解决查询无返回行问题?

解决方案

1. 提前创建关联的WebStoreNetwork测试记录

问题核心是测试环境中不存在与communityId匹配的WebStoreNetwork记录,导致查询返回空结果触发异常。在执行目标查询前,先插入一条符合条件的测试数据:

// 先创建依赖的WebStore记录(WebStoreNetwork关联WebStore对象)
WebStore testWebStore = new WebStore(Name = '测试网店');
insert testWebStore;

// 创建与communityId绑定的WebStoreNetwork记录
WebStoreNetwork testWsNetwork = new WebStoreNetwork(
    NetworkId = communityId,
    WebStoreId = testWebStore.Id
);
insert testWsNetwork;

2. 优化查询的空值处理(可选)

如果业务逻辑允许查询无结果的场景,避免使用单行查询语法,改用集合接收结果后判断是否为空:

List<WebStoreNetwork> wsNetworkList = [
    SELECT WebStoreId
    FROM WebStoreNetwork
    WHERE NetworkId = :communityId
    WITH SECURITY_ENFORCED
];

if (!wsNetworkList.isEmpty()) {
    Id targetWebStoreId = wsNetworkList[0].WebStoreId;
    // 后续业务逻辑处理
} else {
    // 无匹配记录时的分支处理
}

3. 验证权限配置

查询语句包含WITH SECURITY_ENFORCED,需确保测试运行的用户(如果用了RunAs模拟特定用户)拥有WebStoreNetwork对象的访问权限及对应字段的读取权限,必要时为测试用户分配权限集或调整配置文件。

内容的提问来源于stack exchange,提问作者user106835

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 14:30:59