Salesforce Apex:测试标注是否已经完成

Salesforce Apex: test that callout hasn't been made

我想编写一个单元测试来检查是否未从触发器进行调出。

我知道如何测试标注是否正确 - 通过实施 HttpCalloutMock:

global class MyHttpCalloutMock implements HttpCalloutMock {
    global HTTPResponse respond(HTTPRequest req) {
        //test HTTPRequest here
    }
}

但是如果没有发起HTTP请求,则不会调用respond()方法。所以这种方法根本不测试请求是否被发出。

我需要这样的东西:

HTTPRequest.assertNoRequestsHaveBeenMade();

我该怎么做?

所以我想通了。事实证明,Salesforce 具有使异步标注同步的方法 Test.startTest()Test.stopTest()https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_testing_tools_start_stop_test.htm

使标注同步后,测试它们就容易多了。