Tag: unit testing

是否有一个茉莉花匹配器比较对象的属性的子集

我有一个对象,可能会延长我的行为在testing,但我想确保原来的属性仍然存在。 var example = {'foo':'bar', 'bar':'baz'} var result = extendingPipeline(example) // {'foo':'bar', 'bar':'baz', 'extension': Function} expect(result).toEqual(example) //fails miserably 我想在这种情况下有一个匹配器,通过: expect(result).toInclude(example) 我知道我可以写一个自定义的匹配器,但在我看来,这是一个常见的问题,应该已经有一个解决scheme了。 我应该在哪里找它?

我如何指定JUnittesting依赖关系?

我们的工具包有超过15000个JUnittesting,如果其他一些testing失败,很多testing都会失败。 例如,如果方法X.foo()使用Y.bar()中的function并且YTest.testBar()失败,那么XTest.testFoo()也会失败。 显然,XTest.testFoo()也可能因为X.foo()特有的问题而失败。 虽然这很好,我仍然希望两个testing都运行,但如果用XTest.testFoo()指向YTest.testBar()来注释一个testing依赖项,那将会很好。 这样,可以立即看到X.foo()使用的function也失败了,什么不是。 JUnit或其他地方有这样的注释吗? 就像是: public XTest { @Test @DependsOn(method=org.example.tests.YTest#testBar) public void testFoo() { // Assert.something(); } }

如何使用ES6模块模拟unit testing的依赖关系

我试图摆弄Ecmascript 6模块使用webpack + traceur transpile到ES5 CommonJS,但我有麻烦成功地unit testing他们。 我尝试使用Jest + traceur预处理器,但automocking和依赖项名称似乎变得棘手,加上我似乎无法得到sourceMaps与Jest和节点检查器debugging工作。 unit testingES6模块有更好的框架吗?

Androidtesting驱动开发

我在制作Android应用程序方面有相当的经验。 对于我的新项目,我们决定进行testing驱动开发(TDD)。 我一直在Robotium用户场景testing中弄湿我的手,并且它工作正常,看起来也很容易。 对于unit testing,我尝试使用(MockContext Android Class)来模拟上下文,但我无法这样做。 我浏览了这个博客http://sites.google.com/site/androiddevtesting/并通过这个http://sdudzin.blogspot.com/2011/01/easy-unit-testing-for-android.html ,这表明在Android应用程序中的嘲弄仍然非常有限和困难,并build议使用PowerMock,jMockit,JeasyTest或Roboelectric(与Mockito和Maven结合)甚至RoboGuice。 我想从你们那里得到你认为哪个unit testing框架最适合testingAndroid应用程序的build议。 (尤其是testingAndroid类,可能会给出模拟上下文和其他模拟function,以便尽可能使testing用例尽可能独立)。 任何build议或指针都会有所帮助。 谢谢

使用Gradle过滤JaCoCo覆盖报告

问题: 我有一个与jacoco项目,我想能够过滤某些类和/或包。 相关文件: 我已阅读以下文件: 官方的jacoco网站: http : //www.eclemma.org/jacoco/index.html 官方jacoco文档gradle : https : //gradle.org/docs/current/userguide/jacoco_plugin.html 官方jacoco Github问题,覆盖范围: https : //github.com/jacoco/jacoco/wiki/FilteringOptions https://github.com/jacoco/jacoco/issues/14 相关的StackOverflow链接: JaCoCo&Gradle – 过滤选项 (无答案) 从Jacoco报告中使用Sonarrunner和Gradle排除软件包 (不使用声呐 ) JaCoCo – 从报告中排除JSP (这似乎为maven工作,我使用gradle ) Maven的Jacococonfiguration – 排除报告不工作的类/包 (这似乎为maven工作,我使用gradle ) JaCoCo gradle插件排除 (不能得到这个工作) Gradle Jacoco – 覆盖报告包括configuration中排除的类 (看起来非常接近,它使用doFirst ,不适用于我) 我曾经尝试过的例子: apply plugin: 'java' apply plugin: 'jacoco' buildscript { […]

unit testing在游戏编程中是否可行?

我喜欢unit testing的想法,但是我很难将其应用于游戏编程。 游戏是高度有状态的,通常代码不会将自己分解成不同的单元。 根据我的经验,大多数函数都会改变状态,而不是返回值。 考虑像playerJump(height)这样的简单动作。 我很想有一个testing套件来检查各种各样的案例,以确保跳跃始终按预期工作。 然而,这个函数可能不会返回任何值,并且具有player.velocity.y = -height和checkCollisions(player) 。 我想不出一个明确的unit testing来构build这个。 unit testing在游戏等高度有状态的应用程序中是不可行的吗? unit testing的优点是如此之大,以至于值得在function上编程游戏呢? 更新: 来自Within的游戏有一系列关于在游戏中使用testing驱动开发的深度文章。 我强烈build议他们对这个问题感兴趣的人。 这是第一篇文章: Stepping Through the Looking Glass: Test-Driven Game Development (Part 1)

我应该把我的JUnittesting放在哪里?

我有两个关于组织unit testing的问题。 我是否必须将testing放在与testing类相同的包中,还是可以在不同的包中组织testing? 例如,如果我有有效性和其他testing,将它们分成不同的包是否正确,即使它们是同一类? 模拟和存根类怎么样? 我应该将它们与仅包含testing的包分开,还是将它们放在一起?

Visual Studio 2010不会发现新的unit testing

我在Visual Studio 2010中编写了一些unit testing。我可以使用“在当前上下文中运行所有testing”来运行所有的testing。 但是,如果我编写一个新的unit testing,它不会被环境拾取 – 换句话说,我无法通过运行所有testing或其他任何地方在testing列表编辑器中find它。 如果我卸载项目然后重新加载它; 新的testing可以运行。 当我添加一个unit testing时,我只是添加一个新的方法到一个已经存在的TestClass并用[TestMethod]属性装饰它 – 没有什么奇特的。 什么可能导致这种行为,我如何使其工作?

将unit testing作为正在testing的类的朋友有什么不好?

在C ++中,我经常把一个unit testing类作为我正在testing的类的一个朋友。 我这样做是因为我有时觉得需要编写一个私有方法的unit testing,或者我想访问一些私有成员,这样我可以更容易地设置对象的状态,所以我可以testing它。 对我来说,这有助于保持封装和抽象,因为我不修改该类的公共或受保护的接口。 如果我购买第三方库,我不希望它的公共接口受到一些公共方法的污染,我不需要知道,因为供应商想unit testing! 我也不需要担心一群受保护的成员,如果我从一个class级inheritance,我不需要知道这些成员。 这就是为什么我说它保留了抽象和封装。 在我的新工作中,他们甚至对unit testing也不喜欢使用朋友class。 他们说,因为class级不应该“知道”有关testing的任何事情,而且你不希望class级与testing紧密结合。 有人可以向我解释这些原因,以便我可以更好地理解? 我只是不明白为什么使用朋友进行unit testing是不好的。

Unittest的assertEqual和iterables – 只检查内容

在unit testing中有一个“体面的”方法来检查两个可迭代对象的内容是否相等? 我使用了很多元组,列表和numpy数组,我通常只想testing内容而不是types。 目前我只是简单的input: self.assertEqual (tuple (self.numpy_data), tuple (self.reference_list)) 前一段时间我使用了这个列表理解: [self.assertEqual (*x) for x in zip(self.numpy_data, self.reference_list)] 但是,这个解决scheme似乎比typecast差一点,因为它只在打印失败的时候打印单个值,而且对于不同长度的参考和数据(由于zip函数)也不会失败。