你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

TestUtils 类

  • java.lang.Object
    • com.azure.core.test.utils.TestUtils

public final class TestUtils

包含用于测试的实用工具方法。

方法摘要

修饰符和类型 方法和描述
static void assertArraysEqual(byte[] expected, byte[] actual)

断言两个数组相等。

static void assertArraysEqual(byte[] expected, int expectedOffset, byte[] actual, int actualOffset, int length)

断言两个数组相等。

static void assertByteBuffersEqual(ByteBuffer expected, ByteBuffer actual)

断言两 ByteBuffers 个相等。

static HttpClient getFaultInjectingHttpClient(HttpClient clientToWrap, boolean useHttps)

包装 以 HttpClient 调用 HTTP 故障注入器 以测试随机网络故障。

static HttpClient getFaultInjectingHttpClient(HttpClient clientToWrap, boolean useHttps, int successRate, int partialRate, int failureRate)

包装 以 HttpClient 调用 HTTP 故障注入器 以测试随机网络故障。

static File getRecordFolder()

获取指向 File 会话记录所在的文件夹的指针。

static Path getRepoRootResolveUntil(Path testClassPath, String resolveFolder)

找到当前存储库的根目录,直到提供的文件夹的父级为止。

static URI toURI(URL url)

返回等效于此 URL 的 URI

方法继承自 java.lang.Object

方法详细信息

assertArraysEqual

public static void assertArraysEqual(byte[] expected, byte[] actual)

断言两个数组相等。

此方法类似于 JUnit, Assertions#assertArrayEquals(byte[], byte[]) 只不过它利用 JDK 提供的硬件内部函数来优化比较字节数组。

如果数组不相等,将调用 Assertions#assertArrayEquals(byte[], byte[]) 以利用更好的错误消息,但这是例外情况,值得双重比较性能。

参数:

expected - 预期的字节数组。
actual - 实际字节数组。

assertArraysEqual

public static void assertArraysEqual(byte[] expected, int expectedOffset, byte[] actual, int actualOffset, int length)

断言两个数组相等。

此方法类似于 JUnit, Assertions#assertArrayEquals(byte[], byte[]) 只不过它利用 JDK 提供的硬件内部函数来优化字节数组的比较,并允许比较数组的子部分。

如果数组不相等,则会复制数组范围并调用 Assertions#assertArrayEquals(byte[], byte[]) 以利用更好的错误消息,但这是一种例外情况,值得双重比较性能。

参数:

expected - 预期的字节数组。
expectedOffset - 开始偏移量以开始在预期数组中进行比较。
actual - 实际字节数组。
actualOffset - 开始偏移量以开始比较实际数组。
length - 要比较的字节数。

assertByteBuffersEqual

public static void assertByteBuffersEqual(ByteBuffer expected, ByteBuffer actual)

断言两 ByteBuffers 个相等。

此方法类似于 JUnit, Assertions#assertArrayEquals(byte[], byte[]) 只不过它利用 JDK 提供的硬件内部函数来优化 ByteBuffers 的比较。

如果 ByteBuffer 不相等,则会将 ByteBuffer 内容复制到字节数组中,并调用 Assertions#assertArrayEquals(byte[], byte[]) 以利用更好的错误消息,但这是一种异常情况,值得双重比较性能。

参数:

expected - 预期的 ByteBuffer
actual - 实际的 ByteBuffer

getFaultInjectingHttpClient

public static HttpClient getFaultInjectingHttpClient(HttpClient clientToWrap, boolean useHttps)

包装 以 HttpClient 调用 HTTP 故障注入器 以测试随机网络故障。

HttpClient使用此方法返回的 需要配置 HTTP 故障注入器所需的所有设置。 useHttps 确定请求是使用 HTTPS 还是 HTTP 转发到 HTTP 故障注入器,使用 HTTP 不需要 JVM 信任 HTTP 故障注入器使用的自签名证书,从而更轻松地使用 HTTP 故障注入器创建测试原型。 合并就绪测试应始终使用 HTTPS。

HttpClient返回的 将使用默认的成功和失败响应百分比。 75% 的请求将成功,24% 的请求将失败并返回部分正文,1% 的请求永远不会返回响应。 建议对使用 HTTP 故障注入器设置 HttpClientOptions#setResponseTimeout(Duration) 和 的测试,或者直接在使用的 HTTP 客户端生成器中设置等效 HttpClientOptions#setReadTimeout(Duration)方法,因为默认超时为 60 秒,响应失败时随机减少超时将使测试运行速度更快,同时通常仍进行相同的测试。

参数:

clientToWrap - HttpClient将发送实际请求的包装 。
useHttps - 是否应使用 HTTPS 与 HTTP 故障注入器通信。

返回:

一个 , HttpClient 用于通过自动故障注入处理将请求转发到 HTTP 故障注入器,以使用不起落的网络运行测试。

getFaultInjectingHttpClient

public static HttpClient getFaultInjectingHttpClient(HttpClient clientToWrap, boolean useHttps, int successRate, int partialRate, int failureRate)

包装 以 HttpClient 调用 HTTP 故障注入器 以测试随机网络故障。

HttpClient使用此方法返回的 需要配置 HTTP 故障注入器所需的所有设置。 useHttps 确定请求是使用 HTTPS 还是 HTTP 转发到 HTTP 故障注入器,使用 HTTP 不需要 JVM 信任 HTTP 故障注入器使用的自签名证书,从而更轻松地使用 HTTP 故障注入器创建测试原型。 合并就绪测试应始终使用 HTTPS。

HttpClient返回的 将使用指定的成功和失败响应百分比。 、 partialRatefailureRate 的组合successRate必须等于 100,否则IllegalArgumentException将引发 。 IllegalArgumentException如果任何值为负值,也会引发 。 建议对使用 HTTP 故障注入器设置 HttpClientOptions#setResponseTimeout(Duration) 和 的测试,或者直接在使用的 HTTP 客户端生成器中设置等效 HttpClientOptions#setReadTimeout(Duration)方法,因为默认超时为 60 秒,响应失败时随机减少超时将使测试运行速度更快,同时通常仍进行相同的测试。

参数:

clientToWrap - HttpClient将发送实际请求的包装 。
useHttps - 是否应使用 HTTPS 与 HTTP 故障注入器通信。
successRate - 成功请求的百分比。
partialRate - 将部分成功的请求的百分比。
failureRate - 将失败的请求的百分比。

返回:

一个 , HttpClient 用于通过自动故障注入处理将请求转发到 HTTP 故障注入器,以使用不起落的网络运行测试。

getRecordFolder

public static File getRecordFolder()

获取指向 File 会话记录所在的文件夹的指针。

返回:

会话记录文件夹。

getRepoRootResolveUntil

public static Path getRepoRootResolveUntil(Path testClassPath, String resolveFolder)

找到当前存储库的根目录,直到提供的文件夹的父级为止。

参数:

testClassPath - 测试类路径
resolveFolder - 要解析路径的文件夹父级,直到

返回:

Path存储库根目录的 。

toURI

public static URI toURI(URL url)

返回等效于此 URL 的 URI

参数:

url - 要转换为 URI 的 URL

返回:

URI

适用于