当前位置: 首页 > news >正文

网页设计工作室网站深圳网站建设公司那家好

网页设计工作室网站,深圳网站建设公司那家好,做网络推广的网站,有什么好看的网站资源我们都编写了单元测试#xff0c;但是有时我们面临的挑战是被测单元可能依赖于其他组件。 并且配置其他组件进行单元测试绝对是一个过大的选择。 相反#xff0c;我们可以使用Mocks代替其他组件#xff0c;并继续进行单元测试。 为了说明如何使用模拟#xff0c;我有一个数… 我们都编写了单元测试但是有时我们面临的挑战是被测单元可能依赖于其他组件。 并且配置其他组件进行单元测试绝对是一个过大的选择。 相反我们可以使用Mocks代替其他组件并继续进行单元测试。 为了说明如何使用模拟我有一个数据访问层DAL基本上是一个类为应用程序提供API以供应用程序访问和修改数据存储库中的数据。 然后我对DAL进行单元测试而实际上无需连接到数据存储库。 数据存储库可以是本地数据库或远程数据库也可以是文件系统也可以是我们可以存储和检索数据的任何位置。 DAL类的使用有助于我们将数据映射器与应用程序代码分开。 让我们使用maven创建一个Java项目。 mvn archetype:generate -DgroupIdinfo.sanaulla -DartifactIdMockitoDemo -DarchetypeArtifactIdmaven-archetype-quickstart -DinteractiveModefalse 上面创建了一个文件夹MockitoDemo然后为源文件和测试文件创建了整个目录结构。 考虑此示例的以下模型类 package info.sanaulla.models;import java.util.List;/** * Model class for the book details. */ public class Book {private String isbn;private String title;private ListString authors;private String publication;private Integer yearOfPublication;private Integer numberOfPages;private String image;public Book(String isbn,String title,ListString authors,String publication,Integer yearOfPublication,Integer numberOfPages,String image){this.isbn isbn;this.title title;this.authors authors;this.publication publication;this.yearOfPublication yearOfPublication;this.numberOfPages numberOfPages;this.image image;}public String getIsbn() {return isbn;}public String getTitle() {return title;}public ListString getAuthors() {return authors;}public String getPublication() {return publication;}public Integer getYearOfPublication() {return yearOfPublication;}public Integer getNumberOfPages() {return numberOfPages;}public String getImage() {return image;} } 用于对Book模型类进行操作的DAL类为 package info.sanaulla.dal;import info.sanaulla.models.Book;import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List;/** * API layer for persisting and retrieving the Book objects. */ public class BookDAL {private static BookDAL bookDAL new BookDAL();public ListBook getAllBooks(){return Collections.EMPTY_LIST;}public Book getBook(String isbn){return null;}public String addBook(Book book){return book.getIsbn();}public String updateBook(Book book){return book.getIsbn();}public static BookDAL getInstance(){return bookDAL;} } 上面的DAL层目前没有功能我们将对该单元代码 TDD 进行单元测试。 DAL层可能与我们在设计API时不关心的ORM映射器或数据库API通信。 测试DAL层 Java中有许多用于单元测试和模拟的框架但是在这个示例中我将选择JUnit用于单元测试选择Mockito用于模拟 。 我们将不得不更新Maven的pom.xml中的依赖项 project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsdmodelVersion4.0.0/modelVersiongroupIdinfo.sanaulla/groupIdartifactIdMockitoDemo/artifactIdpackagingjar/packagingversion1.0-SNAPSHOT/versionnameMockitoDemo/nameurlhttp://maven.apache.org/urldependencies!-- Dependency for JUnit --dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.10/versionscopetest/scope/dependency!-- Dependency for Mockito --dependencygroupIdorg.mockito/groupIdartifactIdmockito-all/artifactIdversion1.9.5/versionscopetest/scope/dependency/dependencies /project 现在让单元测试BookDAL 。 在单元测试期间我们会将模拟数据注入BookDAL中以便我们无需依赖数据源即可完成API的测试。 最初我们将有一个空的测试类 public class BookDALTest {public void setUp() throws Exception {}public void testGetAllBooks() throws Exception {}public void testGetBook() throws Exception {}public void testAddBook() throws Exception {}public void testUpdateBook() throws Exception {} } 我们将把模拟的BookDAL和模拟的数据注入到setUp() 如下所示 public class BookDALTest {private static BookDAL mockedBookDAL;private static Book book1;private static Book book2;BeforeClasspublic static void setUp(){//Create mock object of BookDALmockedBookDAL mock(BookDAL.class);//Create few instances of Book class.book1 new Book(8131721019,Compilers Principles,Arrays.asList(D. Jeffrey Ulman,Ravi Sethi, Alfred V. Aho, Monica S. Lam),Pearson Education Singapore Pte Ltd, 2008,1009,BOOK_IMAGE);book2 new Book(9788183331630,Let Us C 13th Edition,Arrays.asList(Yashavant Kanetkar),BPB PUBLICATIONS, 2012,675,BOOK_IMAGE);//Stubbing the methods of mocked BookDAL with mocked data. when(mockedBookDAL.getAllBooks()).thenReturn(Arrays.asList(book1, book2));when(mockedBookDAL.getBook(8131721019)).thenReturn(book1);when(mockedBookDAL.addBook(book1)).thenReturn(book1.getIsbn());when(mockedBookDAL.updateBook(book1)).thenReturn(book1.getIsbn());}public void testGetAllBooks() throws Exception {}public void testGetBook() throws Exception {}public void testAddBook() throws Exception {}public void testUpdateBook() throws Exception {} } 在上面的setUp()方法中我有 创建了BookDAL的模拟对象 BookDAL mockedBookDAL mock(BookDAL.class); 在BookDAL的API中添加模拟数据以便在调用API时返回模拟数据。 //When getAllBooks() is invoked then return the given data and so on for the other methods. when(mockedBookDAL.getAllBooks()).thenReturn(Arrays.asList(book1, book2)); when(mockedBookDAL.getBook(8131721019)).thenReturn(book1); when(mockedBookDAL.addBook(book1)).thenReturn(book1.getIsbn()); when(mockedBookDAL.updateBook(book1)).thenReturn(book1.getIsbn()); 填充其余的测试我们得到 package info.sanaulla.dal;import info.sanaulla.models.Book; import org.junit.BeforeClass; import org.junit.Test;import static org.junit.Assert.*; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when;import java.util.Arrays; import java.util.List;public class BookDALTest {private static BookDAL mockedBookDAL;private static Book book1;private static Book book2;BeforeClasspublic static void setUp(){mockedBookDAL mock(BookDAL.class);book1 new Book(8131721019,Compilers Principles,Arrays.asList(D. Jeffrey Ulman,Ravi Sethi, Alfred V. Aho, Monica S. Lam),Pearson Education Singapore Pte Ltd, 2008,1009,BOOK_IMAGE);book2 new Book(9788183331630,Let Us C 13th Edition,Arrays.asList(Yashavant Kanetkar),BPB PUBLICATIONS, 2012,675,BOOK_IMAGE);when(mockedBookDAL.getAllBooks()).thenReturn(Arrays.asList(book1, book2));when(mockedBookDAL.getBook(8131721019)).thenReturn(book1);when(mockedBookDAL.addBook(book1)).thenReturn(book1.getIsbn());when(mockedBookDAL.updateBook(book1)).thenReturn(book1.getIsbn());}Testpublic void testGetAllBooks() throws Exception {ListBook allBooks mockedBookDAL.getAllBooks();assertEquals(2, allBooks.size());Book myBook allBooks.get(0);assertEquals(8131721019, myBook.getIsbn());assertEquals(Compilers Principles, myBook.getTitle());assertEquals(4, myBook.getAuthors().size());assertEquals((Integer)2008, myBook.getYearOfPublication());assertEquals((Integer) 1009, myBook.getNumberOfPages());assertEquals(Pearson Education Singapore Pte Ltd, myBook.getPublication());assertEquals(BOOK_IMAGE, myBook.getImage());}Testpublic void testGetBook(){String isbn 8131721019;Book myBook mockedBookDAL.getBook(isbn);assertNotNull(myBook);assertEquals(isbn, myBook.getIsbn());assertEquals(Compilers Principles, myBook.getTitle());assertEquals(4, myBook.getAuthors().size());assertEquals(Pearson Education Singapore Pte Ltd, myBook.getPublication());assertEquals((Integer)2008, myBook.getYearOfPublication());assertEquals((Integer)1009, myBook.getNumberOfPages());}Testpublic void testAddBook(){String isbn mockedBookDAL.addBook(book1);assertNotNull(isbn);assertEquals(book1.getIsbn(), isbn);}Testpublic void testUpdateBook(){String isbn mockedBookDAL.updateBook(book1);assertNotNull(isbn);assertEquals(book1.getIsbn(), isbn);} } 可以使用maven命令运行测试 mvn test 。 输出为 -------------------------------------------------------T E S T S ------------------------------------------------------- Running info.sanaulla.AppTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.029 sec Running info.sanaulla.dal.BookDALTest Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.209 secResults :Tests run: 5, Failures: 0, Errors: 0, Skipped: 0 因此我们已经能够测试DAL类而无需使用模拟实际配置数据源。 参考来自Experiences Unlimited博客的JCG合作伙伴 Mohamed Sanaulla的Mockito 使用Java进行Mocking入门 。 翻译自: https://www.javacodegeeks.com/2014/02/getting-started-with-mocking-in-java-using-mockito.html
http://www.zqtcl.cn/news/365931/

相关文章:

  • 网络营销做得比较成功的案例吴中seo网站优化软件
  • 怎么设立网站美区下载的app怎么更新
  • 建立网站ppt做酒店网站所用到的算法
  • 上海网站建设的价格低太仓做网站的公司
  • 怎样登录建设互联网站怎么做中英文网站
  • 云网站7china中小企业网站建设好么
  • 美丽南方官网网站建设国际新闻最新消息今天摘抄
  • 牛商网营销型网站多少钱江门营销型网站建设多少钱
  • 小榄公司网站建设网站交互做的比较好的
  • 深圳定制网站建设怎么改版网站
  • 免费学软件的自学网站江阴建设局网站
  • 网站做多久苍南县网站集约化建设
  • 深圳电子烟网站建设罗湖建设公司网站建设
  • 酒店 深圳 网站建设新项目首码对接平台
  • 岳阳市住房和城乡建设局网站上海专业网站建设网
  • 营销型网站建设设定包括哪些方面网站建设后的心得
  • 建立网站来网上销售的英文潢川城乡建设局网站
  • 仿站建站教程网站怎么接广告
  • 免费下载代码项目的网站长春网站建设找新生科技
  • 博兴县建设局网站做网站要用什么服务器吗
  • 成都中小企业网站建设公司怎么挑选网站建设公司
  • 万源网站建设在ppt里面做网站链接
  • 做网站时怎么添加动态信息中铁航空港建设集团网站
  • 文化礼堂建设情况网站网站建设运行
  • 自己做网站很难asp网站开发四酷全书:新闻_论坛_电子商城_博客
  • 网站建设入什么会计科目从网络安全角度考量请写出建设一个大型电影网站规划方案
  • 品牌建设+网站网站建设 淘宝客末班
  • 建设商业网站学校建设门户网站的好处
  • 男女朋友在一起做那个的网站公司建设网站
  • 营销型网站的类型有哪些相册网站怎么做