显然,Salesforce.com中Apex的Spring '12 / v24.0发行版的新功能是单元测试不再可以访问“真实”数据-因此(如果我正确理解了更改),SOQL查询将现在仅检索在单元测试过程中插入的对象-甚至受某些限制。

无论如何,这似乎使OpportunityLineItem测试无法进行,因为:

  • 如果没有PriceBookEntryId,则无法插入OpportunityLineItem,但是
  • 您不能为产品X插入新的价目表条目,除非您已有产品X的标准价目表条目,但是
  • 测试数据中没有标准价格手册,因为与所有表一样,Pricebook2表在单元测试运行开始时实际上是空的,并且
  • 无法在Apex中创建标准价格手册

  • 我真的希望我至少错了这四个点之一,但是到目前为止,现有单元测试的任何变化都没有表明它们是错的。当然,这意味着我的单元测试不再起作用。这实际上是在一夜之间发生的-星期五我在沙盒中进行了正常的测试,现在它们失败了。

    我是否缺少某些内容,或者这是新SFDC版本中的错误?

    最佳答案

    首先,让您放心,没有计划弃用seeAllData标志。我们不会从你的下方拉地毯。至于在顶点测试中创建标准价格手册,我不确定。我敢肯定,在今天的平台上,有几个地方很难在没有现有数据的情况下进行测试,这就是为什么seeAllData标志存在的原因之一。在接下来的几个版本中,我们将努力弥合这些差距。

    10-07 15:26