Salesforce控制器扩展测试:System.QueryException:列表中没有可分配给SObject的行

Salesforce控制器扩展测试:System.QueryException:列表中没有可分配给SObject的行,salesforce,apex,Salesforce,Apex,我正在寻找一些测试控制器扩展的帮助。我一直收到错误:“System.QueryException:List没有要分配给SObject的行”,它引用了我的类中的SOQL语句 课程 public class productdata { public productdata(ApexPages.StandardController controller) { } public String getTag(){ Product2 prod; prod = [SELECT Name F

我正在寻找一些测试控制器扩展的帮助。我一直收到错误:“System.QueryException:List没有要分配给SObject的行”,它引用了我的类中的SOQL语句

课程

public class productdata {

public productdata(ApexPages.StandardController controller) {
}

public String getTag(){
    Product2 prod;
    prod = [SELECT Name FROM Product2 WHERE Id = :ApexPages.currentPage().getParameters().get('id')];
    return Prod.Name;
}
@isTest
测试类

public class productdata {

public productdata(ApexPages.StandardController controller) {
}

public String getTag(){
    Product2 prod;
    prod = [SELECT Name FROM Product2 WHERE Id = :ApexPages.currentPage().getParameters().get('id')];
    return Prod.Name;
}
@isTest
私有类TestProductData{ 静态testMethod void TestProductDataMethod(){


谢谢!

您不应该手动分配您的记录ID(因为它们会随着测试的每次运行而改变)

相反,你应该:

ApexPages.currentPage().getParameters().put('id', TP.id);

你应该考虑把它移到