当前位置: 首页 > 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.yutouwan.com/news/359222/

相关文章:

  • 如何破解WordPress网站wordpress页面无法显示
  • 南阳卧龙区网站建设哪家好图片叠加网站
  • 重庆网站制作系统坑人网站怎么做
  • 网站的设计路线移动互联和网站开发哪个好
  • 天津专业网站设计网站开发用的开源系统
  • 网站开发和前端和数据媒体网站一直被攻击怎么办
  • 建网站多少钱外贸网站推广seo
  • 高性能网站建设指南 书网站首页代码在哪里
  • 小程序开发公司哪家百度seo公司整站优化
  • 搜收录网旅游企业seo官网分析报告
  • 常德烟机网站最近一周的重大热点新闻
  • 湖南华图企业展厅设计公司seo优化推广招聘
  • 成都高端响应式网站开发商城网站建设实训报告模板
  • 深圳网站建 1设骏域网站建设谷歌google play下载
  • dw做游戏网站代码js网站特效
  • 网站导航营销的优点网站建设团购
  • 怎么用阿里云服务器做淘客网站电商网站那些功能用到静态化功能
  • 创建网站基本流程高清做网站插图
  • 做网站克隆如何推广电商平台
  • 公司网站制作与推广太平洋电脑网自助装机
  • 网站开发需要python 吗建设 春风 摩托车官方网站
  • 网站更新问题大岭山网站建设公司
  • 网站建设组织架构网匠网站建设有限公司
  • 网站流量50g电子商务专业就业方向及就业前景
  • 响应式网站手机端西安品牌策划
  • 深圳城乡和住房建设局网站企业所得税计算
  • 模板网站与定制网站区别合肥营销网站建设联系方式
  • 南通网站推广公司成都网站建设费用
  • 云梦做网站的优势wordpress快站平台
  • 网站开发职业前景摄影网站导航