Tag: 基准testing

unit testing与Spring的集成testing

我正在开发一个Spring MVC项目,并对源代码树中的所有组件进行了unit testing。 例如,如果我有一个控制器HomeController ,需要注入一个LoginService ,那么在我的unit testingHomeControllerTest我只是简单地实例化对象(在Spring之外)并注入属性: protected void setUp() throws Exception { super.setUp(); //… controller = new HomeController(); controller.setLoginService( new SimpleLoginService() ); //… } 这对于testing每个组件作为一个单独的单元非常适用 – 除了现在我有几十个类在项目中,写了一个类并写了一个成功的unit testing之后,我一直忘记更新我的Spring MVC上下文文件部署应用程序中的实际接线。 我发现当我将项目部署到Tomcat并从非接线的bean中find一堆NullPointers时,我忘了更新上下文文件。 所以,这是我的问题: 这是我的第一个Spring项目 – 正如我所做的为单个bean创buildunit testing是正常的,然后创build第二套testing(集成testing)来testing一切与实际应用程序上下文的预期一致吗? 有没有一个确定的最佳实践呢? 另外,如何将unit testing和集成testing分开? 我有所有的源代码在src ,unit testing在test – 应该有第二个testing文件夹(如test-integration )集成testing用例? 既然这是我的第一个春季项目,我很好奇别人通常会怎么做这样的事情 – 而不是重新发明轮子,而是问问其余的社区。

敏捷方式:整合testing与functiontesting还是两者兼而有之?

我现在在一个敏捷的办公室工作了一段时间。 我们使用Scrum进行项目pipe理,并混合使用XP的工程实践。 它运作良好,我们不断吸取教训,改进我们的过程。 我想告诉你我们通常的testing做法,并获得有关如何改进的反馈意见: TDD:第一道防线我们对于unit testing非常虔诚,我会说我们的开发人员也有足够的经验来编写全面的testing,并且总是把SUT与Mock隔离。 集成testing对于我们的使用,集成testing基本上与没有使用模拟的unit testing相同。 这往往会遇到一些unit testing中遇到的问题。 这些testing往往难以阅读,因为它们通常涉及大量的工作,或者在规范框架的before_each和after_each部分中工作,因为为了使testing有意义,系统必须经常达到一定的状态。 functiontesting我们通常以结构化但是手动的方式来做这件事。 我们玩过Selenium和Windmill,这很酷,但对我们来说至less还不够。 我想听听别人怎么做。 你认为如果集成testing或functiontesting做得不错,另一个可以忽略不计?

对于Twitter,如何创buildtesting用户帐户?

Facebook允许您创build只能用于testing目的的testing用户帐户。 Twitter是否提供类似的function? 我不想将我的应用程序列入黑名单来创build假用户帐户; 我必须使用我的真实用户帐户来testing我的应用程序吗? 你使用什么样的策略来testingTwitter的应用程序?

截断,事务和删除数据库策略之间的区别

使用Rspec时,截断,事务和删除数据库策略有什么区别? 我找不到解释这个的任何资源。 我阅读了数据库清理器的自述文件,但是并没有解释它们各自的作用。 为什么我们必须为水豚使用截断策略? testing时是否必须清理数据库,还是可以禁用它? 我不明白为什么我应该在每个testing用例之后清理我的数据库,难道不会减慢testing吗?

如何使用Scala将1亿条logging加载到MongoDB中进行性能testing?

我有一个用Scala编写的小脚本,用于载入一个MongoDB实例,上面有100,000,000个样本logging。 这个想法是让数据库全部加载,然后做一些性能testing(如果需要的话调整/重新加载)。 问题是每十万条logging的加载时间几乎是线性增加的。 在我的加载过程开始时,只需要4秒来加载这些logging。 现在,在近6,000,000条logging中,加载相同数量(100,000)的时间需要300到400秒! 这慢了两个数量级! 查询仍然很快,但以这样的速度,我永远无法加载我想要的数据量。 如果我用我所有的logging(所有100,000,000!)写出一个文件,然后用mongoimport导入整个文件,这样会更快吗? 还是我的期望太高,我使用的数据库超出了它应该处理的? 有什么想法吗? 谢谢! 这是我的脚本: import java.util.Date import com.mongodb.casbah.Imports._ import com.mongodb.casbah.commons.MongoDBObject object MongoPopulateTest { val ONE_HUNDRED_THOUSAND = 100000 val ONE_MILLION = ONE_HUNDRED_THOUSAND * 10 val random = new scala.util.Random(12345) val connection = MongoConnection() val db = connection("mongoVolumeTest") val collection = db("testData") val INDEX_KEYS = List("A", "G", "E", "F") […]

如何添加fitnesse页面到版本控制?

什么是推荐的做法? 我应该将我的子文件夹下的fitnesse文件夹添加到版本控制? 上下文:在单个开发者rails宠物项目上工作。 我有我的rails项目在版本控制下(Subversion),但我的fitnesse维基页面位于fitnesse程序文件夹下。 Fitnesse似乎有自己的版本控制…(我看到编号拉链与我的每个维基页面)是否可靠? 它在哪里存储修订?

testingwebforms应用程序的最佳方式是什么(ASP.NET)

testing我的webforms应用程序的最佳方法是什么? 看起来人们都喜欢Watin和selenium。

为testAndroid设置不同的minSdkVersion比主应用程序

是否有可能为testing设置不同的minSdkVersion比应用程序本身? 我问,因为我想使用新的testing支持库和UI Automator进行testing。 但是,这只适用于API 18+。 同时,我仍然希望支持旧版本的Android,尽pipe没有经过彻底的testing。 我需要添加到我的build.gradle文件才能做到这一点? 为了澄清,我正在使用Android Studio和“新”的基于Gradle的项目结构。

Android的JUnittesting…如何期待一个例外

我试图编写一些testing使用内置的Android Junittesting框架。 我遇到了一个testing问题,我期待抛出一个exception。 在JUnit中,testing方法的注释是: @Test(expected = ArithmeticException.class) 但是,在android中,这个testing失败并出现ArithmeticException。 我明白,Android实现只是JUnit 3的一个子集,甚至不允许注解@Test(必须是@SmallTest,@MediumTest或@LargeTest,而且这些参数都不允许使用'expected = ..'参数) ,但这似乎是一个相当重要的testing,似乎像androidtesting框架将严重缺乏,如果它没有这个function。 注意:我通过将JUnit jar添加到项目并添加注释到我的testing方法来testing。 这对我来说是有道理的,为什么注释会被完全忽略,因为android框架(runner?)没有查找那个注释,只是忽略它。 基本上我只是在框架内寻找“正确”的方式来做到这一点。

用Mockito调用callback

我有一些代码 service.doAction(request, Callback<Response> callback); 我如何使用Mockito抓取callback对象,并调用callback.reply(x)