Tag: unit testing

获取JUnit 4中当前正在执行的testing的名称

在JUnit 3中,我可以得到当前正在运行的testing的名称,如下所示: public class MyTest extends TestCase { public void testSomething() { System.out.println("Current test is " + getName()); … } } 这将打印“当前testing是testing的东西”。 在JUnit 4中是否有任何现成或简单的方法? 背景:显然,我不想只打印testing的名称。 我想加载存储在与testing同名的资源中的特定于testing的数据。 你知道, 约定configuration和所有这一切。 谢谢!

有条件地忽略JUnit 4中的testing

好的,所以@Ignore注释对于标记不应该运行testing用例是很好的。 但是,有时我想忽略基于运行时信息的testing。 一个例子可能是如果我有一个并发testing,需要在一定数量的核心的机器上运行。 如果这个testing是在一个单处理器机器上运行的,我认为只是通过testing是不正确的(因为它还没有运行),而且肯定不能通过testing并破坏构build。 所以我希望能够在运行时忽略testing,因为这似乎是正确的结果(因为testing框架将允许构build通过,但loggingtesting不运行)。 我相当肯定注释不会给我这种灵活性,并且怀疑我需要手动为有问题的类创buildtesting套件。 然而,文档并没有提到任何有关这一点,通过API来看,它也不清楚如何以编程方式(即我如何编程创build一个Test或类似的实例相当于@Ignore注释创build的实例?)。 如果有人在过去做过类似的事情,或者对我能做些什么还有一个很好的想法,我很乐意听到这个消息。

使用Mockitotesting抽象类

我想testing一个抽象类。 当然,我可以手动编写一个从类inheritance的模拟 。 我可以使用模拟框架(我正在使用Mockito)而不是手工制作模拟器吗? 怎么样?

在unit testing中设置HttpContext.Current.Session

我有一个Web服务,我试图unit testing。 在服务中,它从HttpContext中提取几个值,如下所示: m_password = (string)HttpContext.Current.Session["CustomerId"]; m_userID = (string)HttpContext.Current.Session["CustomerUrl"]; 在unit testing中,我使用简单的工作请求来创build上下文,如下所示: SimpleWorkerRequest request = new SimpleWorkerRequest("", "", "", null, new StringWriter()); HttpContext context = new HttpContext(request); HttpContext.Current = context; 但是,每当我尝试设置HttpContext.Current.Session的值 HttpContext.Current.Session["CustomerId"] = "customer1"; HttpContext.Current.Session["CustomerUrl"] = "customer1Url"; 我得到空引用exception,说HttpContext.Current.Session为空。 有没有什么办法在unit testing中初始化当前会话?

iPhone – 在模拟器上testing时出现奇怪的错误

当我点击一个UIAlertView的button时,我正在模拟器上testing我的应用程序。 我停止debugging,对代码进行了一些更改,并再次构build应用程序。 现在,当我运行该应用程序时,在控制台中出现此错误 无法在引导程序服务器上注册com.myApp.debug。 错误:未知的错误代码。 这通常意味着该进程的另一个实例已经在运行或挂在debugging器中。程序接收信号:“SIGABRT”。 我试图从模拟器中删除应用程序,做一个干净的生成,但我仍然遇到这个错误,当我尝试运行该应用程序。 我应该怎么做才能在我的模拟器上再次运行应用程序?

unit testingDbContext

我研究了一些关于我可以用来testingDbContext的技术的信息。 我想添加一些内存数据的上下文,以便我的testing可以运行它。 我正在使用数据库优先方法。 我发现最有用的两篇文章是这个和这个 。 这种方法依赖于创buildMyContext和FakeContext将实现的IContext接口,允许模拟上下文。 然而,我试图避免使用存储库来抽象EF,正如一些人所指出的 那样 ,因为EF 4.1已经通过DbSet和DbContext实现了存储库和工作模式单元,而且我真的想保留EF实现的所有function团队不必像我在其他项目中那样使用通用的存储库自己维护它们(这是一种痛苦)。 使用IContext将使我走向相同的path(或不是吗?)。 我想过创build一个从主MyContextinheritance的FakeContext,从而利用它下面的DbContext来运行我的testing而不碰到数据库。 我找不到类似的实现,所以我希望有人能帮助我。 我做错了什么,或者这可能导致我一些我不期待的问题?

如何从string生成stream?

我需要编写一个unit testing,以获取来自文本文件的stream。 我想要做这样的事情: Stream s = GenerateStreamFromString("a,b \nc,d");

集成和unit testing有什么区别?

我知道所谓的unit testing和集成testing的教科书定义。 我很好奇的是什么时候该编写unit testing的时候了……我会把它们写成尽可能多的类。 例如,如果我有一个Word类,我将为Word类编写一些unit testing。 然后,我开始写我的Sentence类,当它需要与Word类交互时,我会经常写我的unit testing,以便他们testingSentence和Word …至less在他们互动的地方。 有这些testing基本上成为集成testing,因为他们现在testing这两个类的集成,还是只是一个跨越两个类的unit testing? 一般来说,由于这个不确定的线,我很less会真正写集成testing…或者是我使用完成的产品来看看所有的部分工作正确的实际集成testing,即使他们是手动的,很less重复超出范围每个人的特征? 我是否误解了集成testing,还是在集成和unit testing之间真的只有很小的差别? 编辑 感谢所有人的回应! 我认为,从各种各样的答案中可以明显看出,unit testing和集成testing之间的界限绝对是一个模糊的线条,也许有点迂腐,试图找出哪些是真正的焦点应该停留在代码上(谢谢@Rob Cooper )。 另外,抱歉,我不会接受任何答案,因为太多太好了,而且看起来真的很主观。

什么是一个好的unit testing?

我相信你们中的大多数人正在写大量的自动化testing,并且在unit testing时也遇到了一些常见的陷阱。 我的问题是,你是否遵循任何行为准则来编写testing,以避免将来出现问题? 更具体地说: 好的unit testing的特性是什么,或者如何编写testing? 鼓励语言不可知论的build议。

Java:如何testing调用System.exit()的方法?

我有几个方法应该在某些input上调用System.exit() 。 不幸的是,testing这些情况导致JUnit终止! 把方法调用放在一个新的线程中似乎没有什么帮助,因为System.exit()终止了JVM,而不仅仅是当前的线程。 有没有处理这个问题的共同模式? 例如,我可以替代System.exit()的存根吗? [编辑]有问题的类实际上是一个命令行工具,我试图在JUnit里面testing。 也许JUnit根本就不是这个工作的正确工具? 对于互补回归testing工具的build议是受欢迎的(最好是与JUnit和EclEmma很好地结合的东西)。