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
使标注同步后,测试它们就容易多了。
我想编写一个单元测试来检查是否未从触发器进行调出。
我知道如何测试标注是否正确 - 通过实施 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
使标注同步后,测试它们就容易多了。