• <bdo id='3oFai'></bdo><ul id='3oFai'></ul>
    1. <tfoot id='3oFai'></tfoot>
      <i id='3oFai'><tr id='3oFai'><dt id='3oFai'><q id='3oFai'><span id='3oFai'><b id='3oFai'><form id='3oFai'><ins id='3oFai'></ins><ul id='3oFai'></ul><sub id='3oFai'></sub></form><legend id='3oFai'></legend><bdo id='3oFai'><pre id='3oFai'><center id='3oFai'></center></pre></bdo></b><th id='3oFai'></th></span></q></dt></tr></i><div id='3oFai'><tfoot id='3oFai'></tfoot><dl id='3oFai'><fieldset id='3oFai'></fieldset></dl></div>

      <small id='3oFai'></small><noframes id='3oFai'>

      1. <legend id='3oFai'><style id='3oFai'><dir id='3oFai'><q id='3oFai'></q></dir></style></legend>
      2. 简单了解Java断言利器AssertJ原理及用法

        时间:2023-12-11

      3. <tfoot id='9ZAVR'></tfoot>

        <small id='9ZAVR'></small><noframes id='9ZAVR'>

      4. <legend id='9ZAVR'><style id='9ZAVR'><dir id='9ZAVR'><q id='9ZAVR'></q></dir></style></legend>
                <tbody id='9ZAVR'></tbody>
            • <i id='9ZAVR'><tr id='9ZAVR'><dt id='9ZAVR'><q id='9ZAVR'><span id='9ZAVR'><b id='9ZAVR'><form id='9ZAVR'><ins id='9ZAVR'></ins><ul id='9ZAVR'></ul><sub id='9ZAVR'></sub></form><legend id='9ZAVR'></legend><bdo id='9ZAVR'><pre id='9ZAVR'><center id='9ZAVR'></center></pre></bdo></b><th id='9ZAVR'></th></span></q></dt></tr></i><div id='9ZAVR'><tfoot id='9ZAVR'></tfoot><dl id='9ZAVR'><fieldset id='9ZAVR'></fieldset></dl></div>

                • <bdo id='9ZAVR'></bdo><ul id='9ZAVR'></ul>

                  Java断言利器AssertJ

                  AssertJ 是一个功能强大的 Java 断言库,可以极大地简化编写测试用例时的代码书写。它提供了丰富的断言方法,使得我们可以轻松地对测试数据进行校验,同时还附带有有用的错误提示信息,在测试失败时能够很快定位到问题所在。

                  AssertJ的原理

                  AssertJ 的实现原理是基于 Java 的 Builder 模式,使用方法链来构建断言语句。具体来说,它将要断言的对象封装在断言器(assertThat)中,然后通过链式调用断言方法来对其进行校验。这种方式可以使代码更加简洁易读,也使得我们可以通过组合不同的断言方法来构建复杂的校验逻辑。

                  AssertJ的用法

                  为了演示 AssertJ 的用法,我们首先需要初始化测试数据。假设我们有如下的一个 Book 类:

                  public class Book {
                      private String title;
                      private String author;
                      private int totalPages;
                      private double price;
                  
                      // 省略构造函数和其他方法
                  }
                  

                  我们可以创建一些 Book 对象用于测试,示例如下:

                  Book book1 = new Book("Java 8 in Action", "Raoul-Gabriel Urma", 424, 39.99);
                  Book book2 = new Book("Effective Java", "Joshua Bloch", 416, 35.99);
                  

                  简单断言

                  假如我们需要简单判断这两本书的标题是否相同,我们可以使用 isEqualTo 方法:

                  assertThat(book1.getTitle()).isEqualTo("Java 8 in Action");
                  assertThat(book2.getTitle()).isEqualTo("Effective Java");
                  

                  如果判断失败,AssertJ 会抛出 AssertionError 异常,并在异常信息中展示具体的错误信息。

                  数值比较

                  当需要比较数值时,我们可以使用 isGreaterThanisLessThanisBetween 等方法:

                  assertThat(book1.getTotalPages()).isGreaterThan(400);
                  assertThat(book2.getPrice()).isLessThan(40.0).isGreaterThan(30.0);
                  assertThat(book1.getPrice()).isBetween(30.0, 50.0);
                  

                  集合断言

                  当需要对集合进行断言时,AssertJ 提供了丰富的方法来进行校验。例如:

                  List<Book> books = Arrays.asList(book1, book2);
                  assertThat(books).hasSize(2);
                  assertThat(books).extracting("title").contains("Java 8 in Action", "Effective Java");
                  

                  上述示例中,我们先创建了一个包含两本书的集合,然后通过 hasSize 方法判断集合的大小,再通过 extracting 方法提取集合中的 title 属性,并判断其是否包含指定的书名。

                  总结

                  AssertJ 是一个功能强大的 Java 断言库,它能够极大地简化编写测试用例时的代码书写。通过使用方法链构建断言语句,以及提供丰富的断言方法来进行校验,AssertJ 可以使代码更加简洁易读,也更有利于定位测试失败的问题所在。

                  上一篇:spring缓存代码详解 下一篇:Java Predicate及Consumer接口函数代码实现解析

                  相关文章

                  1. <tfoot id='kq9kq'></tfoot><legend id='kq9kq'><style id='kq9kq'><dir id='kq9kq'><q id='kq9kq'></q></dir></style></legend>
                  2. <small id='kq9kq'></small><noframes id='kq9kq'>

                    1. <i id='kq9kq'><tr id='kq9kq'><dt id='kq9kq'><q id='kq9kq'><span id='kq9kq'><b id='kq9kq'><form id='kq9kq'><ins id='kq9kq'></ins><ul id='kq9kq'></ul><sub id='kq9kq'></sub></form><legend id='kq9kq'></legend><bdo id='kq9kq'><pre id='kq9kq'><center id='kq9kq'></center></pre></bdo></b><th id='kq9kq'></th></span></q></dt></tr></i><div id='kq9kq'><tfoot id='kq9kq'></tfoot><dl id='kq9kq'><fieldset id='kq9kq'></fieldset></dl></div>
                      • <bdo id='kq9kq'></bdo><ul id='kq9kq'></ul>