单元专题提供单元的最新资讯内容,帮你更好的了解单元。
所以我已经习惯了TDD,但我遇到了一个意想不到的问题:我已经厌倦了100%的代码覆盖率.编写的代码比代码本身更加繁琐,而且我不确定我是否做得对.我的问题是:你应该测试什么样的东西,以及什么样的东西是矫枉过正的? 例如,我有一个如下测试,我不确定它是否有用.我该怎么办才能继续关注TDD,但又不厌倦写测试? describe 'PluginClass' describe '.init(id,
我的班级有依赖,我在单元测试中嘲笑.我在一个对我来说没什么意义的地方得到了一个空引用异常. 我刚才意识到这是因为我没有设置我的模拟依赖.此依赖项已经过测试,但它不会连接到文件系统或数据源之类的任何内容. 我只想在这个新类中测试我的新代码,但我想在这种情况下最好不要模拟. 这个结论是否正确? 正确.你应该模仿依赖于任何持久性或外部性的东西,以防止测试依赖于任何持久性或外部性. 如果依赖性不依赖于任何
TDD能否面向与单元测试不同的另一种测试? 虽然在TDD的一些解释下可能有可能,但我认为TDD的要点是在任何生产代码之前编写测试.鉴于此,您将无法使用大型系统来编写集成或功能测试,因此测试必须在单元级别进行.
我正在玩一个小游戏项目,因为我在TDD方面不是很有经验,所以我喜欢在一些事情上得到一些专家意见. 首先,我很早就意识到TDD似乎不适合游戏开发.看来这个问题的观点差异很大.我最初没有受过教育的意见是,TDD似乎对所有游戏逻辑都有效.我认为任何处理视频输出和声音的内容都会被抽象为可视化测试的类. 事情开始很顺利.目标是创建一个2d太空飞行游戏(小行星为那些关心的人).我为Ship类创建了一系列单元测
我必须承认,我经常在练习测试驱动开发方面遇到困难.尽管使用 Ruby on Rails使得TDD变得非常简单,因为它已经完成了,但我发现编写测试非常无聊!就像牙线一样;我知道我应该这样做,但努力鼓起热情. >您使用哪些技巧使写作测试变得有趣?例如,我看到的一个提示是围绕测试夹具数据发明一个小故事,而不仅仅是使用无意义的无关数据. 如果您首先编写测试,则它们是您编码的规范. 编写测试时必须完成所有的
我开始买入BDD了.基本上,正如我所理解的那样,您编写的场景描述了某些故事的良好接受标准.你从简单的测试开始,从外到内,使用模拟代替你尚未实现的类.随着进步,你应该用实际类替换模拟.从 Introduction to BDD开始: At first, the fragments are implemented using mocks to set an account to be in credi
据我所知,有两种方法,都有它们的缺点. >从依赖注入系统获取您正在进行单元测试的对象.这是一种低维护,因为您在更改框架时无需管理任何内容.但是你实际上是从你的对象的角度测试整个系统,如果一个组件失败,它可能会爆炸很多单元测试,而且可能不明显哪个是失败的. >是在单元测试中手动管理依赖项,在某些情况下创建测试对象,以便您可以单独测试每个对象.这使得单元测试保持谨慎但显着增加了单元测试本身的维护.这也
考虑一个处理依赖注入的初学者.我们正在分析NerdDinner中的两个相关类. 来自应用程序的DinnerRepository: 来自测试的FakeDinnerRepository: 它们实现了不同的逻辑,这当然是必要的,因为这里的关键思想是实现IDinnerRepository,并提供不同的实现和私有成员. 我理解测试是针对控制器的,但我担心数据访问逻辑有两种不同的实现.考虑使用任何类型的ORM
我正在使用Jersey构建一个RESTful Web服务,它依赖于MongoDB的持久性. Web服务本身连接到默认数据库,但对于单元测试,我想使用单独的测试数据库.我会在setUp中填充这个测试数据库,运行我的测试,然后在tearDown中销毁它. 通常,我会在这里使用依赖注入将数据源提供给服务将使用的实体管理器,但在这种情况下,Web服务独立于单元测试运行.我正在使用Jersey Test F
代码不断发展,如果没有修剪,它也会衰减,在这方面有点像花园.修剪意味着重构以使其实现其不断发展的目的. 如果我们有良好的单元测试覆盖率,重构会更安全. 测试驱动的开发迫使我们在生产代码之前首先编写测试代码.因此,我们无法测试实现,因为没有.这使得重构生产代码变得更加容易. TDD周期是这样的:编写测试,测试失败,编写生产代码直到测试成功,重构代码. 但是从我所看到的,人们重构生产代码,而不是测试代
TDD如何与F#和Erlang等功能编程语言进行比较? 我还没有直接使用函数式编程语言,但从我所看到的,你有一个等式的两个方面,他们必须像代数或会计一样平衡;这似乎有点让人想起TDD,你将期望的输出定义为Assert语句(等式的一边),其余的功能进入与测试分离的类(等式的另一面),除了函数式编程恕我直言似乎有点清洁. 两者实际上是否有相似之处,或者我只是过度思考这一点? 软件设计v开发方法 他们是
我对单元测试和TDD非常环保,所以请问我,因为我问一些人可能会考虑新手问题,或者之前是否有过这个问题.如果这被认为是一个“不好的问题”(过于主观和公开辩论),我会高兴地关闭它.但是,我搜索了几天,并没有得到明确的答案,我需要更好地理解这一点,所以我知道没有更好的方法来获取更多信息而不是发布在这里. 我已经开始阅读older book单元测试(因为一位同事手头上有),其开篇章节讨论了为什么要进行单元
我一直在努力坚持TDD方法.所以我做了一些测试,但都失败了.现在我正在实施.但是现在我正在实现我已经看到这些方法太简单而不能失败.特别是我实现了观察者模式,所有发生的事情是我通知所有注册的观察者.因此,对每个循环使用a并调用notify.这当然听起来太简单了.既然我在某些地方进行了测试,我应该删除它们吗?这似乎也有点浪费时间.那么我应该尝试预测一些过于简单的方法吗? 没有. 这些方法现在可能过于简
所以一位同事和我正在进行一场相当激烈的辩论.我们正在开始一个新项目,我们正在尝试使用BDD.我们都是第一次参加,并不完全了解应该使用哪些做法.我们已经编写了一些规范,现在我们正在实现代码.由于存在大量数据库交互,因此事情变得相当棘手.我们被困在如何模拟我们的数据上.我们要进行的方法需要我们模拟我们的方法而不是我们的数据.如果我在代码中向您展示,这是最简单的… public static void
假设我想在编写任何其他代码之前遵循纯TDD,即写单元测试.当我发现错误时,我必须编写单元测试来重现它然后实现修复. 假设我的应用程序中存在内存泄漏.我可以重现它 – 运行特定方法1,000,000,000次会导致OutOfMemoryException.此测试需要10秒才能失败. 长时间运行的单元测试通常不受欢迎,特别是当它们消耗大量内存时.此后,可能还有其他内存泄漏,因此可能会增加此类测试的数量
我继续阅读有关“测试感染”的人,这意味着他们不只是“获得”TDD,而且也不能没有它.他们已经“改造”了.问题是,我该怎么做? “测试感染”的一部分是,您已经使用了足够的TDD,并看到了足够的成功,你不想没有它的代码.一旦你经历了一个循环的写作测试,然后编码和重构,看到你的错误数量下降,你的代码变得更好,结果,它不仅成为第二性质,如Zxaos说,你很难过回到代码第一.这是被测试感染.
我试图让单元测试不依赖于调用container.Resolve< T>()作为依赖关系. 我目前正在使用AutoFac 2.2.4,并尝试过xUnit.NET和NUnit,但都有这个问题: No parameterless constructor defined for this object 如何解决这个问题?它是一个特定的单元测试框架,将支持这一点,还是框架如何配置? 我该不该这样做?或者我可
一个常见的故事 Story: User logging in As a user I want to login with my details So that I can get access to the site 考虑到这样一个广泛的覆盖面,如果我嘲弄DB等系统组件来进行测试是无用的,那么我可以说人们在集成测试中主要使用BDD吗? 这是我的术语 >场景:使用系统的用户示例,其中包
我目前正在开展一个具有相当重要业务规则的项目,因为我们正在编写解决方案(相当典型的混乱项目管理类型的事情),问题空间被“发现”.我们有体面的测试覆盖依靠他们相当一点,以确保我们的显着变化不会吹动任何东西.这种情况是单元测试狂热分子突出显示的一种事情,作为测试的一个典型例子,如果您不使用单元测试,帮助软件可以轻松修改,更少的缺陷和更快的完成.我很想知道如何在没有测试套件的情况下才能应付. 我的问题是
我有一个项目,我正在尝试学习单元测试和TDD实践.我发现我正在花费很长时间来设计一个几乎在所有地方使用的实用程序类的嘲笑案例. 从我读过的关于单元测试的信息,如果我正在测试MyClass,我应该嘲笑任何其他功能(如由UtilityClass提供).是否可以接受(假设UtilityClass本身有一套全面的测试)来使用UtilityClass而不是为所有不同的测试用例设置mock? 编辑:我正在做很