function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Chitral ChaddaChitral Chadda 

test class error


Error: Compile Error: Invalid bind expression type of Schema.SObjectField for column of type Decimal at line 13 column 75@isTest
public class Testcreatedeal{
 
static testMethod void deal()
 {
 Test_1__c a = new Test_1__c();
 a.Number__c=34;
 
 insert a;
 
 ApexPages.standardController controller = new ApexPages.standardController(a);

 list<Test_2__c>  b=[select id,Number__c from Test_2__c where Number__c=: Test_1__c.Number__c];//line 13
 System.assertEquals(1, Test_2__c.size());  
 }


vf page:
<apex:page standardController="Test_1__c"   extensions="CreateDeal"  action="{!deal}">
</apex:page>

controller*************
public class CreateDeal
 {
  
 
    private id accountId{get;set;} 
     public Test_1__c b{get;set;}

    
    public CreateDeal(ApexPages.StandardController controller) 
    {
    accountId= ApexPages.currentPage().getParameters().get('id');
    system.debug('+++'+accountId);
    }
    
    public  pageReference  deal()
    {
     Test_1__c  b = [Select id,Name__c,Number__c,Phone__c from Test_1__c  where id =:accountId];
     Test_2__c a = new Test_2__c();
     {
     
      a.Name__c=b.Name__c;
      a.Number__c=b.Number__c;
      a.Phone__c=b.Phone__c;
      }
      insert a;
      
    //Schema.DescribeSObjectResult result = Test_2__c.SObjectType.getDescribe();

    PageReference pageRef = new PageReference('/'+a.id);
    pageRef.setRedirect(true);
    return pageRef;
    }
}
any help ??  and is my test class correct  basically on one object there are field ,when i click button( custom button on which m calling this vf page) it populates fields into other object just.
Best Answer chosen by Chitral Chadda
Roy LuoRoy Luo

static testMethod void runTest() 
    {
        Test.startTest();
        Test_1__c a = new Test_1__c(Number__c=34);
        insert a;

        
        PageReference p = Page.CreateDeal;
        p.getParameters().put('id', a.Id);

        Test.setCurrentPage(p);
        
        CreateDeal ctrl = new CreateDeal(new ApexPages.StandardController(a)); 
        ctrl.deal();
        Test.stopTest();

        List<Test_2__c>  b=[select id,Number__c from Test_2__c where Number__c=: a.Number__c];//line 13
        System.assertEquals(1, Test_2__c.size());  
    }

All Answers

Roy LuoRoy Luo
 list<Test_2__c>  b=[select id,Number__c from Test_2__c where Id =: a.Id];//line 13
 System.assertEquals(1, b.size());  
 System.assertEquals(a.Number__c, b.get(0).Number__c);  
Chitral ChaddaChitral Chadda
hi, thankyou
i get this error 
System.AssertException: Assertion Failed: Expected: 1, Actual: 0
@isTest
public class Testcreatedeal{
 
static testMethod void deal()
 {
 Test_1__c a = new Test_1__c();
 a.Number__c=34;
 
 insert a;
 
 ApexPages.standardController controller = new ApexPages.standardController(a);

 list<Test_2__c>  b=[select id,Number__c from Test_2__c where id=: a.id limit 1];
 System.assertEquals(1, b.size()); 
 //System.assertEquals(a.Number__c, b.get(0).Number__c);   
 }
Roy LuoRoy Luo
Try this. You do need to replace YourVFPage with your VF page developer name, not the label.

static testMethod void runTest() 
    {
        Test.startTest();
        Test_1__c a = new Test_1__c(Number__c=34);
        insert a;

        
        PageReference p = Page.YourVFPage;
        p.getParameters().put('id', a.Id);

        Test.setCurrentPage(p);
        
        CreateDeal ctrl = new CreateDeal(new ApexPages.StandardController(a)); 
        ctrl.deal();
        Test.stopTest();

        List<Test_2__c>  b=[select id,Number__c from Test_2__c where Number__c=: a.Number__c];//line 13
        System.assertEquals(1, Test_2__c.size());  
    }
Chitral ChaddaChitral Chadda
Ty for help Can u please let me know this Cz i have created only 1 vf page named CreateDeal . PageReference p = Page.YourVFPage; p.getParameters().put('id', a.Id); "YourVFPage"-- what shud i write here i m not able to get this part
Roy LuoRoy Luo

static testMethod void runTest() 
    {
        Test.startTest();
        Test_1__c a = new Test_1__c(Number__c=34);
        insert a;

        
        PageReference p = Page.CreateDeal;
        p.getParameters().put('id', a.Id);

        Test.setCurrentPage(p);
        
        CreateDeal ctrl = new CreateDeal(new ApexPages.StandardController(a)); 
        ctrl.deal();
        Test.stopTest();

        List<Test_2__c>  b=[select id,Number__c from Test_2__c where Number__c=: a.Number__c];//line 13
        System.assertEquals(1, Test_2__c.size());  
    }
This was selected as the best answer
Chitral ChaddaChitral Chadda
thkyou :) it worked

 System.assertEquals(1, Test_2__c.size()); 
jus lil change

 System.assertEquals(1, b.size());