Tag: unit testing

随机数据在unit testing?

我有一个同事为对象填​​写随机数据的unit testing。 他的理由是它提供了更广泛的testing,因为它会testing很多不同的值,而正常的testing只使用一个静态值。 我给了他很多不同的理由,主要是: 随机值意味着testing不是真正可重复的(这也意味着,如果testing可以随机失败,它可以在构build服务器上这样做,并打破构build) 如果它是一个随机值并且testing失败,我们需要a)修复这个对象,并且b)强迫我们每次testing这个值,所以我们知道它是有效的,但是因为它是随机的,所以我们不知道这个值是什么 另一位同事补充说: 如果我正在testing一个exception,那么随机值将不能确保testing以预期的状态结束 随机数据用于清除系统和加载testing,而不是unit testing 其他人可以添加额外的理由,我可以给他让他停止这样做吗? (或者,这是写一个unit testing的可接受的方法,我和我的另一个同事是错的?)

Mockitovalidation方法调用的顺序/顺序

有没有办法来validationmethodTwo之前调用methodTwo在Mockito? public class ServiceClassA { public void methodOne(){} } public class ServiceClassB { public void methodTwo(){} } public class TestClass { public void method(){ ServiceClassA serviceA = new ServiceClassA(); ServiceClassB serviceB = new ServiceClassB(); serviceA.methodOne(); serviceB.methodTwo(); } }

如何模拟一个ES6模块的import?

我有以下ES6模块: network.js export function getDataFromServer() { return … } widget.js import { getDataFromServer } from 'network.js'; export class Widget() { constructor() { getDataFromServer("dataForWidget") .then(data => this.render(data)); } render() { … } } 我正在寻找一种方法来testing一个模拟的getDataFromServer实例的Widget。 如果我使用单独的<script>而不是ES6模块,就像在Karma中那样,我可以编写我的testing: describe("widget", function() { it("should do stuff", function() { let getDataFromServer = spyOn(window, "getDataFromServer").andReturn("mockData") let widget = new Widget(); expect(getDataFromServer).toHaveBeenCalledWith("dataForWidget"); expect(otherStuff).toHaveHappened(); }); […]

将JUnit类分离成特殊的testing包?

我正在学习testing驱动开发的概念,通过阅读上一个问题“学习JUnit的示例项目和正确的软件工程”的答案中推荐的Craftsman文章 (点击主题下的Craftsman )。 我很喜欢它! 但现在我想坐下来亲自尝试一下。 我有一个问题,我希望只需要一个简单的答案。 你如何组织你的JUnittesting类和你的实际代码? 我主要谈论的是包装的结构,但其他任何概念也是有帮助的。 你把org.myname.project.test。*中的testing类和org.myname.project。*中的正常代码放在一起吗? 你把testingclass和普通class放在一起吗? 你喜欢用Test来为类名加前缀而不是后缀? 我知道这似乎是我很快就不应该担心的事情,但我是一个非常以组织为中心的人。 我几乎是那种花费更多时间来研究方法来跟踪要完成什么的人,而不是实际完成任务。 而且我有一个目前整齐划分的软件包,但是这个项目变得一团糟。 我不是试图重构所有的东西,而是写testing,所以我想重新开始,首先testing。 但首先我需要知道我的testing去哪里。 编辑:我完全忘记了Maven,但似乎大部分人正在使用它! 在过去,我有一个具体的用例,Maven完全抛弃了我,但Ant给了我所需要的灵活性,所以我最终关注了Ant,但是我想也许我只是采取了错误的方法。 我想我会给Maven另一个尝试,因为它听起来像testing驱动开发将会顺利。

如何传播Django的unit testing多个文件?

我有一个python-django应用程序 我正在使用unit testing框架 testing安排在模块目录下的“tests.py”文件中 我通过./manage.py test app运行testing 现在.. tests.py文件变得相当大/复杂/杂乱 我想将tests.py分解成更小的testing集合… 怎么样?

在IntelliJ中创buildtesting类

我正在使用IntelliJ中的传统Maven Java项目结构,例如 main/java/com/x/y test/java/com/x/y 当我使用IntelliJ在main / java / com / x / y中创build一个名为Foo的类时,我想自动在test / java / com / x / y中创build一个名为FooTest.java的文件。 在Eclipse中,工具栏上有一个button,它将完成创build骨架testing类所涉及的许多工作,是否有人知道IntelliJ中类似的东西? 谢谢,

在Junit声明列表

如何在JUnittesting用例中声明列表? 不仅列表的大小,而且列表的内容。

Python在jenkinstesting?

你怎么让jenkins执行Pythonunit testing案例? 是否有可能从内置unittest包的JUnit样式的XML输出?

使用Moq来模拟一个unit testing的asynchronous方法

我正在testing一个Web API调用的服务的方法。 如果我也在本地运行Web服务(位于解决scheme中的另一个项目中),使用正常的HttpClient可以正常工作。 但是,当我检查我的更改时,构build服务器将无法访问Web服务,因此testing将失败。 我已经为unit testingdevise了一个解决方法,创build一个IHttpClient接口并实现我在应用程序中使用的版本。 对于unit testing,我使用模拟的asynchronouspost方法完成一个模拟版本。 这是我遇到问题的地方。 我想为这个特定的testing返回一个OK的HttpStatusResult 。 对于另一个类似的testing,我将返回一个不好的结果。 testing将运行,但永远不会完成。 它挂在等待。 我是新来的asynchronous编程,委托,Moq本身,我一直在search和谷歌一段时间学习新的东西,但我似乎无法摆脱这个问题。 这是我想要testing的方法: public async Task<bool> QueueNotificationAsync(IHttpClient client, Email email) { // do stuff try { // The test hangs here, never returning HttpResponseMessage response = await client.PostAsync(uri, content); // more logic here } // more stuff } 这是我的unit testing方法: [TestMethod] public […]

在内部编写代码,但可用于其他项目的unit testing

我们把所有的unit testing放在自己的项目中。 我们发现我们必须公开某些类而不是内部的unit testing。 无论如何要避免这样做。 把课程公开而不是密封起来的内存含义是什么?