Questions tagged «unit-testing»

单元测试是一种测试源代码的各个单元以确定它们是否适合使用的方法。

7
如何断言Iterable包含具有特定属性的元素?
假设我要使用此签名对方法进行单元测试: List<MyItem> getMyItems(); 假设MyItem是一种Pojo,它具有许多属性"name",可通过访问其中一个属性getName()。 我只想验证的是List<MyItem>或Iterable包含两个MyItem实例,它们的"name"属性值为"foo"和"bar"。如果其他属性不匹配,那么我真的不在乎此测试的目的。如果名称匹配,则表示测试成功。 如果可能,我希望它成为一线客。这是我想做的一些“伪语法”。 assert(listEntriesMatchInAnyOrder(myClass.getMyItems(), property("name"), new String[]{"foo", "bar"}); Hamcrest会适合这种事情吗?如果是这样,上面的伪语法的hamcrest版本到底是什么?

4
RSpec控制器测试-空白response.body
使用RSpec测试我的控制器时,我遇到了一个问题-response.body调用始终返回空字符串。在浏览器中,所有内容均可正确渲染,黄瓜功能测试似乎可以正确处理,但RSpec每次都失败。 对响应对象的其他期望,例如response.should render_template('index')通过没有任何问题。 你们有没有遇到过这个问题?也许可以以其他方式获得响应html? 至于版本,Rails 2.1.0,RSpec 1.2.7。

6
断言numpy.array相等的最佳方法?
我想为我的应用程序做一些单元测试,并且需要比较两个数组。由于array.__eq__返回一个新数组(因此TestCase.assertEqual失败),为相等性断言的最佳方法是什么? 目前我正在使用 self.assertTrue((arr1 == arr2).all()) 但我不是很喜欢

14
如何在JavaScript单元测试中模拟localStorage?
有没有可以模拟的库localStorage? 我一直在使用Sinon.JS进行其他大多数JavaScript 模拟,并且发现它确实很棒。 我的初步测试表明,localStorage拒绝在firefox(sadface)中分配,因此我可能需要对此进行一些修改:/ 到目前为止,我的选择如下所示: 创建我所有代码都使用的包装函数并模拟它们 为localStorage创建某种状态(可能很复杂)状态管理(测试前快照localStorage,在清理还原快照中)。 ?????? 您如何看待这些方法,您是否认为还有其他更好的方法可以做到这一点?无论哪种方式,我都会将最终生成的“库”放到github上以获取开放源代码。



4
正确的软件包命名以使用Go语言进行测试
我在Go中看到了几种不同的测试包命名策略,并想知道每种策略的优缺点以及应该使用哪种优缺点。 策略1: 文件名:github.com/user/myfunc.go package myfunc 测试文件名称:github.com/user/myfunc_test.go package myfunc 有关示例,请参见bzip2。 策略2: 文件名:github.com/user/myfunc.go package myfunc 测试文件名称:github.com/user/myfunc_test.go package myfunc_test import ( "github.com/user/myfunc" ) 有关示例,请参见wire。 策略3: 文件名:github.com/user/myfunc.go package myfunc 测试文件名称:github.com/user/myfunc_test.go package myfunc_test import ( . "myfunc" ) 请参阅字符串作为示例。 Go标准库似乎混合使用了策略1和策略2。我应该使用这三种策略中的哪一种?package *_test在我的测试包后面增加了一个痛苦,因为这意味着我无法测试我的包私有方法,但是也许有一个我不知道的隐藏优势?
102 unit-testing  go 

7
如何“休眠” Dart程序
我喜欢在Dart应用程序中模拟一个异步Web服务调用以进行测试。为了模拟这些模拟调用响应的随机性(可能是无序的),我想对模拟程序进行编程,使其在返回“未来”之前等待(睡眠)一段时间。 我怎样才能做到这一点?

19
VS 2010 Test Runner错误“测试运行时,代理进程已停止。”
在Visual Studio 2010中,我有许多单元测试。当我一次使用测试列表运行多个测试时,有时会针对一个或多个测试显示以下错误: 测试正在运行时,代理进程已停止。 决不会同一测试失败,如果我再次尝试运行测试,它将成功。 我在Connect上发现了此错误报告,这似乎是相同的问题,但没有提供解决方案。 有人看到过这种行为吗?我该如何避免呢? 编辑 我仍在遇到此错误,在相同软件/硬件设置下的许多同事也是如此。到目前为止,我已经评估了答案,但是并不能解决问题。我开始为解决这个问题提供悬赏。

4
测试类是否具有属性?
我正在尝试进行一些“测试优先”的开发,并试图验证我的类是否标记有属性: [SubControllerActionToViewDataAttribute] public class ScheduleController : Controller 如何对类分配了该属性的单元测试?


2
如何验证一个非模拟对象的方法被调用?
似乎嘲笑仅验证是否调用了嘲笑对象的方法,并且嘲笑对象始终具有类似 doReturn().when(mock object) 但是我可以创建一个模拟对象并定义doReturn().when(mock object) 然后验证另一个对象的方法是否被调用吗? 这是我想做的事情:我定义了一个模拟环境,无论发生什么情况都返回一个响应。但是然后我想验证在不同情况下调用anotherObj的不同方法。 怎么做? public class BaseClass { private Environment mockEnvironment; @Test public void testcase () { setMockitoEnvironment(); response = foo(mockEnvironment, argument1); verify(anotherObj).codePath1(...); response = foo(mockEnvironment, argument2); verify(anotherObj).codePath2(...); } } //this method successfully return a response with any input //because I do not care how response …

10
用打字稿开玩笑地模拟依赖
测试在其他文件中具有依赖性的模块时。当将该模块分配为jest.Mock打字稿时,会给出错误mockReturnThisOnce(该方法(或任何其他jest.Mock方法)不依赖),这是因为先前已键入该方法。使打字稿继承jest.Mock中的类型的正确方法是什么? 这是一个简单的例子。 相依性 const myDep = (name: string) => name; export default myDep; 测试 import * as dep from '../depenendency'; jest.mock('../dependency'); it('should do what I need', () => { //this throws ts error // Property mockReturnValueOnce does not exist on type (name: string).... dep.default.mockReturnValueOnce('return') } 我觉得这是一个非常常见的用例,不确定如何正确键入。任何帮助将非常感激!

2
我应该如何组织Python源代码?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 改善这个问题 我正在开始使用Python(现在是时候尝试了),并且我正在寻找一些最佳实践。 我的第一个项目是一个在多个线程中运行命令行实验的队列。我开始得到一个很长的main.py文件,我想将其分解。总的来说,我在寻找:python程序员如何组织多个源文件?有没有适合您的特定结构? 我的具体问题包括: 每个类都应该放在单独的文件中吗? 我应该如何组织相对于源代码的单元测试? 我应该在哪里放置doc注释,尤其是命令行操作的注释? 如果使用多个目录,如何在它们之间导入类? 我可能会通过反复试验得出一些自己的结论,但是我宁愿从好的东西开始。

5
模拟框架与MS Fakes框架
对于Mock框架(例如NMock)与VS 2011 Fakes框架的区别有些困惑。通过MSDN,我了解到Fakes允许您像RhinoMock或NMock一样模拟依赖项,但是方法不同,Fakes生成代码以实现此功能,而Mocks框架则不行。我的理解正确吗?是假货只是另一个Mock框架

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.