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

黑龙seo网站优化建设网站要学编程吗

黑龙seo网站优化,建设网站要学编程吗,wordpress设置新页面跳转,东莞市住房城乡建设局官网junit规则介绍 在本文中#xff0c;我想展示一个示例#xff0c;说明如何使用JUnit Rule简化测试。 最近#xff0c;我继承了一个相当复杂的系统#xff0c;并未对所有内容进行测试。 甚至经过测试的代码也很复杂。 通常#xff0c;我看到缺乏测试隔离。 #xff08;我将… junit规则 介绍 在本文中我想展示一个示例说明如何使用JUnit Rule简化测试。 最近我继承了一个相当复杂的系统并未对所有内容进行测试。 甚至经过测试的代码也很复杂。 通常我看到缺乏测试隔离。 我将写一个关于使用Legacy Code的不同博客。 我正在修复的测试和代码之一实际上是将多个组件一起测试。 它还连接到数据库。 它测试一些逻辑和组件之间的交集。 如果代码没有在完全不同的位置编译则测试无法运行因为它加载了所有Spring上下文。 其结构是在测试任何类之前启动所有Spring上下文。 这些测试扩展了BaseTest该加载了所有Spring上下文。 BaseTest还使用After方法清除数据库。 重要说明本文是关于更改测试的并非结构完全正确。 在创建新代码和测试时应该将它们隔离一事不做。更好的测试应该使用模拟数据库/依赖项等。修复测试和重构后我将充满信心进行更多更改。 回到我们的话题… 因此我得到的是测试套件运行缓慢没有隔离甚至由于不相关的问题而导致测试运行出现问题。 因此我决定将数据库连接的上下文加载与清理数据库分开。 方法 为了实现这一点我做了三件事首先是更改测试类的继承。 它停止继承BaseTest。 相反它继承了AbstractJUnit4SpringContextTests现在我可以为每个测试创建自己的上下文而不加载所有内容。 现在我需要两个规则ClassRule和Rule ClassRule将负责数据库连接Rule将在每次测试之后/之前清理数据库。 但是首先 什么是JUnit规则 简短的解释是它们提供了拦截测试方法的可能性类似于AOP概念。 Rule允许我们在方法实际运行之前和之后拦截方法。 ClassRule拦截测试类的运行。 一个非常有名的Rule是JUnit的TemporaryFolder 。 类似于 Before After和BeforeClass。 创建Rule 最简单的部分是创建一个在测试方法之前和之后清理数据库的规则。 您需要实现TestRule 它具有一种方法 语句applyStatement baseDescription description 你可以做很多。 我发现通常我会有一个扩展Statement的内部类。 我创建的规则并未创建数据库连接而是在构造函数中获得了它。 这是完整的代码 public class DbCleanupRule implements TestRule {private final DbConnectionManager connection;public MongoCleanupRule(DbConnectionManager connection) {this.connection connection;}Overridepublic Statement apply(Statement base, Description description) {return new MongoCleanupStatement(base, connection);}private static final class DbCleanupStatement extends Statement {private final Statement base;private final DbConnectionManager connection;private MongoCleanupStatement(Statement base, DbConnectionManager connection) {this.base base;this.connection connection;}Overridepublic void evaluate() throws Throwable {try {cleanDb();base.evaluate();} finally {cleanDb();}}private void cleanDb() {connection.doTheCleanup();}} }创建ClassRule ClassRule实际上也是TestRule。 与Rule的唯一区别是我们在测试代码中如何使用它。 我将在下面显示。 创建此规则的挑战在于我想使用Spring上下文来获取正确的连接。 这是代码 ExternalResource是TestRule public class DbConnectionRule extends ExternalResource {private DbConnectionManager connection;public DbConnectionRule() {}Overrideprotected void before() throws Throwable {ClassPathXmlApplicationContext ctx null;try {ctx new ClassPathXmlApplicationContext(/META-INF/my-db-connection-TEST-ctx.xml);mongoDb (DbConnectionManager) ctx.getBean(myDbConnection);} finally {if (ctx ! null) {ctx.close();}}}Overrideprotected void after() {}public DbConnectionManager getDbConnecttion() {return connection;} } 您是否看到我可以使DbCleanupRule继承ExternalResource 使用它 最后一部分是我们如何使用规则。 Rule必须是公共字段。 ClassRule必须是公共静态字段。 那里是 ContextConfiguration(locations { /META-INF/one-dao-TEST-ctx.xml, /META-INF/two-TEST-ctx.xml }) public class ExampleDaoTest extends AbstractJUnit4SpringContextTests {ClassRulepublic static DbCleanupRule connectionRule new DbCleanupRule ();Rulepublic DbCleanupRule dbCleanupRule new DbCleanupRule(connectionRule.getDbConnecttion()); Autowiredprivate ExampleDao classToTest;Testpublic void foo() {} } 就这样。 希望能帮助到你。 翻译自: https://www.javacodegeeks.com/2014/09/junit-rules-3.htmljunit规则
http://www.pierceye.com/news/585293/

相关文章:

  • 宛城区网站建设广东seo推广方案
  • 北京建网站定制价格网站风格总结
  • 如何建设一个购物网站wordpress 优酷插件
  • 你们网站做301网站开发规模和工作量的计算
  • 班级网站建设甘肃住房和城乡建设厅网站
  • 网站建设哪家性价比高住房和城乡建设部网站办事大厅里边
  • 外贸小语种网站建设深圳市保障性住房申请官网
  • 阿里云买域名后怎么做网站wordpress创建空白页面
  • 小型公司建网站腾讯风铃wordpress
  • 广州做模板网站的公司怎么区分营销型和展示型的网站
  • 网站推广服务外包1688阿里巴巴国际站首页
  • 深圳学校网站建设wordpress rossi 汉化
  • 课程网站课程资源建设北京吴勇设计工作室
  • 网站建设费用什么意思软件制作专业
  • 扬中本地网站外国做美食视频网站
  • 深圳手机网站制作价钱阜阳中国建设银行官网站
  • 廊坊建设网站企业安卓开发自学教程
  • 做网站虚拟主机配置汉沽手机网站建设
  • 设计一个网站先做哪些构造姑苏区建设局网站
  • 制造业营销外贸网站建设网站管理的内容包括
  • 看电视剧的免费网站app下载网站等保如何做
  • 如何做网站的营销中山vi设计公司
  • 搜索引擎网站使用的排名规则室内设计联盟网页版
  • php 手机网站开发手机端网站开发框架
  • 苏州电信网站备案浙江搜索引擎优化
  • 黄岛网站建设哪家好市体育局网站 两学一做
  • 上海建设银行网站转账记录吗外国网站做问卷调查挣钱
  • 深圳做购物网站十堰网络销售
  • 郑州企业网站优化多少钱百度竞价排名价格
  • js特效做的好的网站什么专业是做网站