最新代码是什么?

时间:2017-05-14 07:51:07

标签: salesforce apex

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);行的含义,调试日志的含义是什么?

2 个答案:

答案 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