当前位置: 首页 > 知识库问答 >
问题:

方法不存在或签名不正确

那昊
2023-03-14

我正在尝试为生产中的顶点类实现一个简单的更改。我有正确的类和正确的测试类。测试类在沙盒中成功运行,没有错误,但显然错误来自Salesforce中的TestHelper默认测试类。当尝试在生产中部署时,它会抛出错误“方法不存在或签名不正确:TestHelper类型中的空createUser(Id、String、String、Date、Intger)”

我尝试过将其引用的方法更改为public static void,但没有成功,它会在代码中抛出错误

这是我的测试类:

@isTest
private class OppLineItemInvntryBO_AType_OppStge_Test {   

    @testSetup public static void setup() {
        Profile p = [SELECT Id FROM Profile 
            WHERE Name = 'profile1' LIMIT 1];

            Date myDate = Date.newinstance(2019,07,01);

        User testUser = TestHelper.createUser(p.Id, 
               'company1','legalentity1',myDate,327001);

这是我的TestHelper类:

public with sharing class TestHelper {
  public static User createUser(Id profileId, String company) {
    Integer rnd = getRandomNumber(10000);

    User user = new User(
      Username = 'john.doe@acme.com' + String.valueOf(rnd),
      Email = 'john.doe' + String.valueOf(rnd) + '@acme.com',
      LastName = 'Doe',
      FirstName = 'John',
      Alias = 'JD' + String.valueOf(rnd),
      ProfileId = profileId,
      LocaleSidKey = 'en_US',
            LanguageLocaleKey = 'en_US',
            TimeZoneSidKey = 'America/Los_Angeles',
            EmailEncodingKey='UTF-8',
            CompanyName = company);
    insert user;
    return user;
  }

  public static Integer getRandomNumber(Integer size){
    Double d = math.random() * size;
    return d.intValue();
  }
}


完全错误如下:

API名称-OppLineItemInvntryBO\u AType\u OppStge\u测试类型-Apex类行-14列-36错误消息-方法不存在或签名不正确:类型TestHelper中的void createUser(Id、String、String、Date、Integer)

共有1个答案

晁璞
2023-03-14

您正在使用OppLineItemInvntryBO\u AType\u OppStge\u测试类中的5个参数调用createUser方法,其中与TestHelper类一样,createUser方法只接受2个参数。这就是为什么您会出现此错误。尝试使用正确的参数调用该方法。

 类似资料:
  • 当Iam在Mockito中使用anyString()或anyInt()或anyLong()方法时,stubbing不起作用。如果我使用anyObject(),它工作得很好。例如,如果我们有使用此签名的方法: 嘲笑: 当在测试的方法内部调用此模拟时,它将抛出NullPointerException。但是如果我们为anyObject()更改它,一切都很好。有人知道为什么anyString()会导致Nu

  • 使用Android Studio中的rename函数将目录重命名为后,收到以下错误消息: Androidmanifest xml不存在或根标记不正确 有什么办法能让这个成功吗? 当我复制目录并将其重命名为时,错误就消失了,我可以构建应用程序了。

  • 我从头开始创建了一个AS项目,一切都很好。然后出现了一个弹出窗口,(如果我没记错的话)说的是:“”。我按了“是”,项目/模块发生了一些变化,然后我得到了上面的错误 在我的案例中,问题与无关。它与/配置有关,特别是一个文件。我意识到看了这篇信息丰富的帖子。

  • 问题内容: 我正在使用和 (Bouncycastle库) 签署,然后验证。 这是我签署的: 现在,输出将在这一过程中使用的: 一切正常,直到由于以下原因: 有人可以给我提示可能发生的事情吗? PS 。如果有人要进行上述测试,则将需要我用来复制此文件的测试文件,只需从这里开始即可: https://www.dropbox.com/s/zs4jo1a86v8qamw/certificates.p12?

  • 我正在使用和(Bouncycastle库)对进行签名,然后验证。 由于以下,: 谁能给我一个可能会发生什么事的提示吗? ps.如果有人想要测试上面的您将需要我正在使用的测试文件来复制该文件,只需从此处即可: https://www.dropbox.com/s/zs4jo1a86v8qamw/certifications.p12?dl=0

  • 问题内容: 我有一个超类的方法: 在其子类之一中,我想执行以下操作: 但这是行不通的。问题是我有一个超类的引用,并且我想只在其中一个子类中调用此方法。 问题答案: 您不能在重写方法中更改类型参数的数量。对于您的情况,返回类型显然会覆盖失败。但是,即使返回类型相同,您的方法仍然不会被覆盖等效,因为您应该覆盖的方法中的类型参数更少。 从JLS- 方法签名 : 如果两个方法具有相同的名称和参数类型,则它