有没有办法在Java中使用JMock模拟对象构造?例如,如果我有这样的方法:publicObjectcreateObject(StringobjectType){if(objectType.equals("Integer"){returnnewInteger();}elseif(objectType.equals("String"){returnnewString();}}...有没有办法在测试方法中模拟对象构造的期望?我希望能够期望某些构造函数被调用,而不是用额外的代码来检查类型(因为它并不总是像我的示例那样复杂和简单)。所以代替:assertTrue(a.createObject(
我正在寻找一种将TDD应用于sessionBean的方法。任何人都可以提供有关如何对其进行单元测试的建议和链接吗?如何使用JUnit来做到这一点?P.S:我是测试驱动开发和sessionBean的新手。我正在使用EJBv2。 最佳答案 我假设您正在谈论EJB2.xsessionBean。对于这些动物,我喜欢做的是:将sessionBean用作包装器,将逻辑委托(delegate)给POJO,您可以在容器外轻松地对其进行测试。外部容器测试更好、更快、更容易等,但不会涵盖部署描述符验证等内容-和/或-使用像Cactus这样的东西用于容器
在TDD(TestDrivenDevelopment)开发过程中,如何处理测试数据?假设一个场景,解析一个日志文件得到需要的列。对于强测试,测试数据如何准备?我将此类文件定位到测试类文件是否合适? 最佳答案 例如,Maven使用文件夹结构约定来处理测试数据:srcmainjava如果你使用maven进行构建,你需要将测试资源放在正确的文件夹中,如果你的构建有不同的东西,你可能想要使用这个结构,因为它不仅仅是一个maven约定,对我来说认为它接近“最佳实践”。 关于java-Junit中如
我正在研究Swing,我想知道如何有效地为我的GUI应用程序执行TDD。我已经用abbot和fest做了一些事情……但是我还是觉得没有效果,它就像只做功能测试,如果有人有好的建议请发帖.. 最佳答案 TDDGUI有两个方面。有GUI设置本身(比如拖放),然后是GUI的功能(按此按钮在Web浏览器中启动URL)。关于GUI本身,我推荐TestJustAfter,您可以在其中编写一些代码并查看Swing实际上执行了您期望的操作,然后将该代码放入锁定行为的可测试方法中。您仍然保持它很小,因此您需要测试在某种程度上驱动设计,但最终Swing
我正在处理一个新项目,我想在屏幕上显示一些数据。我开始使用TDD,这对我来说是新的,但我喜欢这个想法并且到目前为止相处得很好。我设置了一个JFrame,添加了一个Textarea并将文本放在那里,但我如何才能正确测试它?或者在我这边的TDD上下文中这是错误的想法?我想确定(以TDD方式)数据是否正确显示!显示的文本的创建被测试正确覆盖,但显示没有。这是一个完全简化的例子:publicclassMyTextDisplay{publicstaticvoidmain(String[]args){JFramemy_frame=newJFrame("DisplaySomeText");my_fr
让我先解释一下我问这个问题的目的:我是什么样的开发者?我是那种思考问题,编写代码然后自己测试的人。我主要开发网络应用程序,但也有一些基于UI的项目(RCP/Swing应用程序)。我运行我的应用程序并单击此处,测试它...您可能知道这种“风格”。好吧,我是一个试图在每一行/项目中提高自己的人,我希望我的代码/应用程序能够得到务实的测试。我用代码编写-我想在代码中测试。所以我开始为我的一些类/函数使用单元测试(junit4)。这适用于不涉及UI的后端内容——老实说:我发现很难编写大部分测试。如果我们正在构建一个网络应用程序,则可能会与session或其他内容进行交互。我想你明白了。我正在寻
我一直在阅读EffectiveJava,我对第一项“使用”有一些担忧静态工厂方法而不是构造函数”与TDD和依赖注入(inject)有关。该项目说你应该避免使用公共(public)/protected/默认构造函数并公开它使用静态工厂。我同意与使用静态工厂相关的所有优点就像工厂可以有名字,你可以返回子类型,你可以减少冗长等等。但是,我考虑缺点Joshua错过了TDD,因为在你的代码中有静态工厂会导致紧密耦合,你不能模拟使用它的类。我们将无法mock将拥有静态工厂的类。因此,它阻碍了测试驱动开发。第二点,我认为他错过了当今企业发展中的大部分应用程序使用一个或另一个依赖注入(inject)容
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我最近接受了一次采访,要求我制作传统的FizzBuzz解决方案:Outputalistofnumbersfrom1to100.Forallmultiplesof3and5,thenumberisreplacedwith"FizzBuzz"Forallremainingmultiplesof3,thenumberisreplacedwith"Fizz"
我有一个DAO类的测试,我使用DBUnit来创建和填充数据库(使用内存中的derby)。我在测试dao更新方法时遇到了问题,因为它修改了数据,然后另一个测试失败了。众所周知,测试应该独立于任何其他测试,而且我知道DBUnit有一些工具可以在每次测试后清理和重新生成数据库。但它不起作用!代码是这样的(TestNG):@BeforeMethodpublicvoidprepareData()throwsException{cleanAndPopulate("users");}publicvoidcleanAndPopulate(StringnameXML)throwsException{ID
我想向我的初级Java程序员介绍测试驱动开发原则,他们以前从未听说过这个术语。我计划在上半场进行一次解释TDD的基础知识和优势的session,然后在下半场完成一项动手作业。那么什么是适合TDD新手的基于Java的好作业呢?不能小到让人失去兴趣,也不能困难到让人失去信心。我在网上看到了一些,还想考虑一下你的建议。非常感谢任何关于相同的指针/链接。 最佳答案 这是一个重要的TDD教程,其中的主题是编写俄罗斯方block。完成它可能需要10多个小时。大约30个首批测试已经预先编写,之后提供了一些关于接下来要编写哪些测试的提示。https