String color1 = moreColors.get(0);
String color2 = moreColors[0];
System.assertEquals(color1, color2);
// Iterate over a list to read elements
for(Integer i=0;i<colors.size();i++) {
// Write value to the debug log
System.debug(colors[i]);
}
我正在学习Apex,刚刚开始了System.assertEquals(color1, color2);
行的含义,调试日志的含义是什么?
答案 0 :(得分:1)
System.assert,System.assertEquals,System.assertNotEquals。我认为这些是Apex中最重要的三种方法调用。
这些是断言陈述。它们用于测试,以验证您所拥有的数据符合您的期望。
System.assert测试逻辑语句。如果语句的计算结果为True,则代码将继续运行。如果语句的计算结果为False,则代码会抛出异常。
System.assertEquals测试两个值是否相等。如果两者相等,代码将继续运行。如果它们不相等,则代码会抛出异常。
System.assertNotEqual测试两个值不相等。如果两者不相等,代码将继续运行。如果它们相等,则代码会抛出异常。
这些对于完成系统测试至关重要。在Apex Code中,您必须拥有75%的线路测试覆盖率。很多人通过生成仅覆盖75%代码行的测试代码来实现这一目标。但是,这是一个不完整的测试。一个好的测试类实际测试代码是否符合您的预期。确保您的代码真正有效,这真的很棒。这使得调试和回归测试变得更加容易。例如。让我们创建一个名为square(Integer i)的方法,该方法将返回的整数平方。
public static Integer square( Integer i ) {
return i * i;
}
糟糕的测试方法就是:
@isTest
public static void test_squar() {
square( 1 );
}
一个好的测试方法可能是:
@isTest
public static void test_square() {
Integer i;
Integer ret_square;
i = 3;
ret_square = square( i );
System.assertEquals( i * i; ret_square );
}
我怎么可能写它是这样的:
@isTest
public static void test_square() {
for( Integer i = 0; i < MAX_TEST_RUNS; i++ ) {
System.assertEquals( i*i, square( i ) );
}
}
良好的测试实践是成为优秀开发人员不可或缺的一部分。查看有关测试驱动开发的更多信息。 https://en.wikipedia.org/wiki/Test-driven_development
答案 1 :(得分:0)
逐行......
//Get color in position 0 of moreColors list using the list get method store in string color1
String color1 = moreColors.get(0);
//Get color in position 0 of moreColors list using array notation store in string color2,
//basically getting the same value in a different way
String color2 = moreColors[0];
//Assert that the values are the same, throws exception if false
System.assertEquals(color1, color2);
// Iterate over a list to read elements
for(Integer i=0;i<colors.size();i++) {
// Write value to the debug log
System.debug(colors[i]);//Writes the value of color list ith position to the debug log
}
如果您通过Developer Console匿名运行此代码,则可以查找以DEBUG |为前缀的行查找语句,例如
16:09:32:001 USER_DEBUG 1 | DEBUG |蓝色
有关系统方法的更多信息,请访问https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_methods_system_system.htm#apex_System_System_methods