See: Description
| Package | Description |
|---|---|
| com.azure.core.test |
Package containing common test classes for Azure client libraries.
|
| com.azure.core.test.annotation |
Package containing annotations test classes for Azure client libraries.
|
| com.azure.core.test.http |
Package containing classes to test HTTP communications in Azure client libraries.
|
| com.azure.core.test.models |
Package containing models used to test Azure client libraries.
|
| com.azure.core.test.policy |
Package containing
HttpPipelinePolicies used to test Azure
client libraries. |
| com.azure.core.test.utils |
Package containing utility classes used for testing Azure client libraries.
|
Library containing core classes used to test Azure SDK client libraries.
To use this package, add the following to your pom.xml.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-core-test</artifactId>
<version>1.1.0</version>
</dependency>
InterceptorManager for each unit test and either plays
back test session data or records the test session. Each session's file name is determined using the name of the test.NetworkCallRecords.Use TestBase to easily create live and playback test cases. Extending from TestBase provides an
interceptorManager that keeps track of all network calls.
/**
* Set the AZURE_TEST_MODE environment variable to either PLAYBACK or RECORD to determine if tests are playback or
* live. By default, tests are run in playback mode.
*/
public class SessionTests extends TestBase {
/**
* Use JUnit or TestNG annotation here for your testcase
*/
public void fooTest() {
// Do some network calls.
}
}
Record network calls using RecordNetworkCallPolicy. Each HTTP request sent from the test client, is persisted to RecordedData.
/**
* Sample code for recording network calls.
*/
public class Foo {
public void recordNetworkCalls() {
// All network calls are kept in the recordedData variable.
RecordedData recordedData = new RecordedData();
HttpPipeline pipeline = new HttpPipelineBuilder()
.policies(new RecordNetworkCallPolicy(recordedData))
.build();
// Send requests through the HttpPipeline.
pipeline.send(new HttpRequest(HttpMethod.GET, "http://bing.com"));
// Get a record that was sent through the pipeline.
NetworkCallRecord networkCall = recordedData.findFirstAndRemoveNetworkCall(record -> {
return record.getUri().equals("http://bing.com");
});
}
}
Playback test session records by creating a RecordedData.
/**
* Sample code for using playback to test.
*/
public class FooBar {
public void playbackNetworkCalls() {
RecordedData recordedData = new RecordedData();
// Add some network calls to be replayed by playbackClient
// Creates a HTTP client that plays back responses in recordedData.
HttpClient playbackClient = new PlaybackClient(recordedData, null);
// Send an HTTP GET request to http://bing.com. If recordedData contains a NetworkCallRecord with a matching HTTP
// method and matching URL, it is returned as a response.
Mono<HttpResponse> response = playbackClient.send(new HttpRequest(HttpMethod.GET, "http://bing.com"));
}
}
If you encounter any bugs with these SDKs, please file issues via Issues or checkout StackOverflow for Azure Java SDK.
Other useful packages are: * azure-core: Contains core classes and functionality used by all client libraries.
If you would like to become an active contributor to this project please follow the instructions provided in Microsoft Azure Projects Contribution Guidelines.
git checkout -b my-new-feature)git commit -am 'Add some feature')git push origin my-new-feature)
Copyright © 2020 Microsoft Corporation. All rights reserved.