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

国内大型免费网站建设济宁万达网站建设

国内大型免费网站建设,济宁万达网站建设,建手机端网站,商城网站建设市场分析论文vue 脚手架测试环境莱昂#xff1a;Luc Besson的专业人士 当我开始通过创建相同的对象并准备用于运行测试的数据来重复进行单元测试方法时#xff0c;我对设计感到失望。 带有大量代码重复的长测试方法看起来并不正确。 为了简化和缩短它们#xff0c;基本上有两个选择Luc Besson的专业人士 当我开始通过创建相同的对象并准备用于运行测试的数据来重复进行单元测试方法时我对设计感到失望。 带有大量代码重复的长测试方法看起来并不正确。 为了简化和缩短它们基本上有两个选择至少在Java中1通过Before和BeforeClass初始化的私有属性以及2私有静态方法。 他们俩对我来说都是反面向对象的我认为还有另一种选择。 让我解释。 JUnit正式建议一个测试装置 public final class MetricsTest {private File temp;private Folder folder;Beforepublic void prepare() {this.temp Files.createTempDirectory(test);this.folder new DiscFolder(this.temp);this.folder.save(first.txt, Hello, world!);this.folder.save(second.txt, Goodbye!);}Afterpublic void clean() {FileUtils.deleteDirectory(this.temp);}Testpublic void calculatesTotalSize() {assertEquals(22, new Metrics(this.folder).size());}Testpublic void countsWordsInFiles() {assertEquals(4, new Metrics(this.folder).wc());} } 我认为该测试正在做什么很明显。 首先在prepare() 它创建Folder类型的“测试装置”。 在所有三个测试中将其用作Metrics构造函数的参数。 这里要测试的实际类是Metrics而this.folder是我们测试它所需要的。 此测试有什么问题 有一个严重的问题测试方法之间的耦合 。 测试方法以及所有常规测试必须彼此完全隔离。 这意味着更改一项测试不得影响任何其他测试。 在此示例中情况并非如此。 当我想更改countsWords()测试时必须更改before()的内部这会影响测试“类”中的其他方法。 在充分尊重JUnit的情况下在Before和After中创建测试装置的想法是错误的主要是因为它鼓励开发人员耦合测试方法。 这是我们可以改善测试并隔离测试方法的方法 public final class MetricsTest {Testpublic void calculatesTotalSize() {final File dir Files.createTempDirectory(test-1);final Folder folder MetricsTest.folder(dir,first.txt:Hello, world!,second.txt:Goodbye!);try {assertEquals(22, new Metrics(folder).size());} finally {FileUtils.deleteDirectory(dir);}}Testpublic void countsWordsInFiles() {final File dir Files.createTempDirectory(test-2);final Folder folder MetricsTest.folder(dir,alpha.txt:Three words here,beta.txt:two wordsgamma.txt:one!);try {assertEquals(6, new Metrics(folder).wc());} finally {FileUtils.deleteDirectory(dir);}}private static Folder folder(File dir, String... parts) {Folder folder new DiscFolder(dir);for (final String part : parts) {final String[] pair part.split(:, 2);this.folder.save(pair[0], pair[1]);}return folder;} } 现在看起来好点了吗 我们还没有但现在我们的测试方法已完全隔离。 如果要更改其中一个则不会影响其他参数因为我将所有配置参数都传递给私有静态实用程序方法folder() 。 一种实用方法对吗 是的 闻起来 。 尽管比以前的设计要好得多但这种设计的主要问题是它不能防止测试“类”之间的代码重复。 如果在另一个测试用例中需要类似Folder类型的测试治具则必须将该静态方法移到那里。 甚至更糟的是我将不得不创建一个实用程序类。 是的在面向对象的编程中没有什么比实用程序类更糟糕的了。 更好的设计是使用“伪”对象而不是私有静态实用程序。 这是怎么回事。 首先我们创建一个伪造的类并将其放入src/main/java 。 必要时此类可用于测试以及生产代码中 Fk表示“伪造” public final class FkFolder implements Folder, Closeable {private final File dir;private final String[] parts;public FkFolder(String... prts) {this(Files.createTempDirectory(test-1), parts);}public FkFolder(File file, String... prts) {this.dir file;this.parts parts;}Overridepublic IterableFile files() {final Folder folder new DiscFolder(this.dir);for (final String part : this.parts) {final String[] pair part.split(:, 2);folder.save(pair[0], pair[1]);}return folder.files();}Overridepublic void close() {FileUtils.deleteDirectory(this.dir);} } 这是我们的测试现在的外观 public final class MetricsTest {Testpublic void calculatesTotalSize() {final String[] parts {first.txt:Hello, world!,second.txt:Goodbye!};try (final Folder folder new FkFolder(parts)) {assertEquals(22, new Metrics(folder).size());}}Testpublic void countsWordsInFiles() {final String[] parts {alpha.txt:Three words here,beta.txt:two wordsgamma.txt:one!};try (final Folder folder new FkFolder(parts)) {assertEquals(6, new Metrics(folder).wc());}} } 你怎么看 它不是比JUnit提供的更好吗 它不是比实用程序方法更具可重用性和可扩展性吗 总而言之我认为单元测试中的脚手架必须通过与生产代码一起提供的伪造对象来完成。 翻译自: https://www.javacodegeeks.com/2015/05/a-few-thoughts-on-unit-test-scaffolding.htmlvue 脚手架测试环境
http://www.yutouwan.com/news/273140/

相关文章:

  • 梁山县网站建设网站搭建设计
  • php是用来做网站的吗网站建设费用详细表
  • 福州网站建设优化wordpress农业模板
  • 电子商务网站建设也管理网站建设毕业设计论文
  • 网站运营与管理的对策建议网站主页设计布局
  • 福州企业网站维护价格低建设公司营销网站
  • 做推文网站甜蜜蜜西瓜视频免费观看
  • 特色的武进网站建设asp网站怎么做301定向
  • 静态网站生成器怎样做产品网络推广的方法
  • 免备案php网站空间合肥定制网站建设
  • 大尺度做爰床视频网站中国免费素材网
  • 国外网站建设品牌桂林同城网站
  • 英文网站建设easy简单大方网站
  • 网站开发合同样本织梦模板如何安装
  • 小程序网站开发机构凤阳做网站
  • 南阳做网站优化哪家好污水处理厂网站建设
  • 网站结构图怎么做网站开发交付验收文档
  • 望京做网站的公司哪家好wordpress录音功能
  • 个人或主题网站建设实验体会cp网站开发搭建网站多少钱一套
  • 网站建设课程下载wordpress安装包
  • 网站建设收费标准报价怎么样在百度做网站
  • win2003 iis做网站网站网页设计在哪找
  • 网站建设公司发展前景分栏型网站
  • 北京新机场建设指挥部网站惠州小程序推广
  • 河南浪博网站开发dede网站版权信息标签
  • 代制作网站wordpress++群晖
  • 网站设计培训学校有哪些百度技术培训中心
  • 网站制作流程分为哪三步广东地区建网站的公司
  • 西安网站建设的费用代理网名大全
  • 深圳网站建设服务器公司ml免费域名注册