i've spent nearly 2 days looking up how to write a test class and so I thought i'd now ask (works great in staging)
I have a custom controller that pulls records from a custom object, and then displays them as a table:
Apex class name: ouController
Custom object name: ou__c
public class ouController{
public List<ou__c> o_uy{get;set;}
public ouController() {
o_uy= [SELECT
Affected_Receive_Country__c,
Affected_Send_Country__c,
Detailed_Description__c,
End_Date__c,
Incident_Description_for_CS__c,
Incident_Status__c,
Incident_Type__c,
Service__c,
Start_Date__c,
Latest_Update__c,
Customers_Notified__c,
API_Enabled_Disabled__c,
Action__c
FROM ou__c
WHERE Incident_Status__c = 'Open'
ORDER BY Incident_Type__c DESC];
}
}
The VF page is this:
VF page name: o_u
<apex:page Controller="ouController">
<style>
.headerclass{
text-align:center;
}
</style>
<apex:pageBlock >
<apex:pageBlockTable value="{!o_uy}" var="ou__c" headerClass="headerclass" style="font-size:10.0pt;">>
<apex:column value="{!ou__c.Start_Date__c}" style="{!IF(CONTAINS(ou__c.Incident_Type__c, 'Outage'), 'background-color: #FFC2C2;',IF(CONTAINS(ou__c.Incident_Type__c, 'Maintenance'), 'background-color: #9CDEFF;', 'background-color: #B0FF9C;'))}"/>
<apex:column value="{!ou__c.End_Date__c}" style="{!IF(CONTAINS(ou__c.Incident_Type__c, 'Outage'), 'background-color: #FFC2C2;',IF(CONTAINS(ou__c.Incident_Type__c, 'Maintenance'), 'background-color: #9CDEFF;', 'background-color: #B0FF9C;'))}"/>
<apex:column value="{!ou__c.Service__c}" style="{!IF(CONTAINS(ou__c.Incident_Type__c, 'Outage'), 'background-color: #FFC2C2;',IF(CONTAINS(ou__c.Incident_Type__c, 'Maintenance'), 'background-color: #9CDEFF;', 'background-color: #B0FF9C;'))}"/>
<apex:column value="{!ou__c.Incident_Type__c}" style="{!IF(CONTAINS(ou__c.Incident_Type__c, 'Outage'), 'background-color: #FFC2C2;',IF(CONTAINS(ou__c.Incident_Type__c, 'Maintenance'), 'background-color: #9CDEFF;', 'background-color: #B0FF9C;'))}"/>
<apex:column value="{!ou__c.Affected_Send_Country__c}" style="{!IF(CONTAINS(ou__c.Incident_Type__c, 'Outage'), 'background-color: #FFC2C2;',IF(CONTAINS(ou__c.Incident_Type__c, 'Maintenance'), 'background-color: #9CDEFF;', 'background-color: #B0FF9C;'))}"/>
<apex:column value="{!ou__c.Affected_Receive_Country__c}" style="{!IF(CONTAINS(ou__c.Incident_Type__c, 'Outage'), 'background-color: #FFC2C2;',IF(CONTAINS(ou__c.Incident_Type__c, 'Maintenance'), 'background-color: #9CDEFF;', 'background-color: #B0FF9C;'))}"/>
<apex:column value="{!ou__c.Incident_Description_for_CS__c}" style="{!IF(CONTAINS(ou__c.Incident_Type__c, 'Outage'), 'background-color: #FFC2C2;',IF(CONTAINS(ou__c.Incident_Type__c, 'Maintenance'), 'background-color: #9CDEFF;', 'background-color: #B0FF9C;'))}"/>
<apex:column value="{!ou__c.API_Enabled_Disabled__c}" style="{!IF(CONTAINS(ou__c.Incident_Type__c, 'Outage'), 'background-color: #FFC2C2;',IF(CONTAINS(ou__c.Incident_Type__c, 'Maintenance'), 'background-color: #9CDEFF;', 'background-color: #B0FF9C;'))}"/>
<apex:column value="{!ou__c.Customers_Notified__c}" style="{!IF(CONTAINS(ou__c.Incident_Type__c, 'Outage'), 'background-color: #FFC2C2;',IF(CONTAINS(ou__c.Incident_Type__c, 'Maintenance'), 'background-color: #9CDEFF;', 'background-color: #B0FF9C;'))}"/>
<apex:column value="{!ou__c.Latest_Update__c}" style="{!IF(CONTAINS(ou__c.Incident_Type__c, 'Outage'), 'background-color: #FFC2C2;',IF(CONTAINS(ou__c.Incident_Type__c, 'Maintenance'), 'background-color: #9CDEFF;', 'background-color: #B0FF9C;'))}"/>
<apex:column value="{!ou__c.Action__c}" style="{!IF(CONTAINS(ou__c.Incident_Type__c, 'Outage'), 'background-color: #FFC2C2;',IF(CONTAINS(ou__c.Incident_Type__c, 'Maintenance'), 'background-color: #9CDEFF;', 'background-color: #B0FF9C;'))}"/>
</apex:pageBlockTable>
</apex:pageBlock>
I'm really struggling here, i've gone through forums, Trailhead and the documentation. I understand that the purpose of the class is see what happens when a record from the custom object is passed through the controller
Conceptually, I believe it should be something like:
@isTest
public class TestouController {
static testMethod void insertou() {
ou__c testou__c = new ou__c();
ou__c.Start_Date__c= DateTime.now(); //date/time field
ou__c.End_Date__c= DateTime.now(); //date/time field
ou__c.Service__c= 'Airtime'; //multi picklist field
ou__c.Incident_Type__c= 'Maintenance'; //picklist field
ou__c.Affected_Send_Country__c= 'Austria'; //picklist field
ou__c.Affected_Receive_Country__c= 'Algeria'; //picklist field
ou__c.Incident_Description_for_CS__c= 'test'; //text area 255 field
ou__c.API_Enabled_Disabled__c= 'Enabled'; //picklist field
ou__c.Customers_Notified__c= 'Email'; //multi picklist field
ou__c.Latest_Update__c= 'test'; //Text(255) field
ou__c.Action__c= 'test'; //text(50) field
insert testou__c;
}
}
However this is not working at all