标签: tdd

如何测试私有函数或具有私有方法,字段或内部类的类?

如何对具有内部私有方法,字段或嵌套类的类进行单元测试(使用xUnit)?或者通过内部链接(static在C/C++中)或在私有(匿名)命名空间中使其成为私有的函数?

为了能够运行测试而更改方法或函数的访问修饰符似乎很糟糕.

java tdd unit-testing

2593
推荐指数
36
解决办法
82万
查看次数

用于TDD的JavaScript单元测试工具

我已经研究并考虑了许多JavaScript单元测试和测试工具,但一直无法找到合适的选项来保持完全符合TDD标准.那么,是否有一个完全符合TDD标准的JavaScript单元测试工具?

javascript tdd unit-testing

717
推荐指数
9
解决办法
53万
查看次数

如何验证使用Mockito不调用特定方法?

如何验证是否在对象的依赖项上调用方法?

例如:

public interface Dependency {
    void someMethod();
}

public class Foo {
    public bar(final Dependency d) {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

通过Foo测试:

public class FooTest {
    @Test
    public void dependencyIsNotCalled() {
        final Foo foo = new Foo(...);
        final Dependency dependency = mock(Dependency.class);
        foo.bar(dependency);
        **// verify here that someMethod was not called??**
    }
}
Run Code Online (Sandbox Code Playgroud)

java tdd mockito

563
推荐指数
5
解决办法
30万
查看次数

你如何对私人方法进行单元测试?

我正在构建一个具有一些公共和私有方法的类库.我希望能够对私有方法进行单元测试(主要是在开发时,但它也可能对将来的重构有用).

这样做的正确方法是什么?

.net tdd unit-testing private

470
推荐指数
13
解决办法
18万
查看次数

进行单元测试时的C#"内部"访问修饰符

我是单元测试的新手,我正在试图弄清楚是否应该开始使用更多的"内部"访问修饰符.我知道如果我们使用'internal'并设置汇编变量'InternalsVisibleTo',我们可以测试我们不想从测试项目声明公共的函数.这让我觉得我应该总是使用'​​内部',因为至少每个项目(应该?)都有它自己的测试项目.你们能告诉我为什么不这样做吗?我什么时候应该使用'私人'?

.net c# tdd unit-testing

419
推荐指数
7
解决办法
12万
查看次数

单元测试反模式目录

反模式:必须至少有两个关键元素来正式区分实际的反模式与简单的坏习惯,不良做法或坏主意:

  • 一些重复的行动模式,过程或结构最初似乎是有益的,但最终会产生比有益结果更糟糕的后果,并且
  • 经过重构的解决方案,清晰记录,在实际操作中得到验证并可重复使用.

投票给你在"野外"看过一次太多的TDD反模式.
詹姆斯卡尔的博客文章关于testdrivendevelopment yahoogroup的相关讨论

如果你发现了一个'未命名的',那么也可以发布它们.每个反模式一个帖子请投票计算一些东西.

我的既得利益是找到前n个子集,以便我可以在不久的将来在午餐盒中讨论他们.

tdd unit-testing anti-patterns

203
推荐指数
30
解决办法
3万
查看次数

测试驱动开发的缺点?

采用测试驱动设计我会失去什么?

仅列出否定数; 不列出以否定形式写的福利.

testing tdd unit-testing

190
推荐指数
14
解决办法
8万
查看次数

如何使用Ruby on Rails开始使用TDD?

我熟悉这些概念(在大学里参加测试课程),但我不知道如何真正使用它们,因为我从未参与过"真正的"TDD项目.

我即将开始使用Ruby on Rails开发项目(最有可能使用2.3).此应用程序将用于管理数据,用户和一些文件.一开始不会太复杂,但在接下来的6个月内可能会扩展很多,所以我觉得现在是进入TDD的最佳时机.

我对如何做到这一点有一个基本的想法,但我仍然需要一些指示和建议:

  • 我应该阅读什么Ruby on Rails TDD 101文章?

  • 我需要测试什么?

  • 我应该使用什么gem /插件?

  • 我应该使用rspec吗?别的什么?

  • 一旦我完成了所有测试课程,我该如何进行部署?(例如:持续整合)

  • TDD到底耗时多少?

  • 我是否需要阅读一本关于此的书,或者我可以通过玩它并阅读在线教程来获得所有内容吗?如果我需要读一本书,那本书是什么?


我喜欢用例子学习,所以有人可以告诉我如何去采取TDD方法来解决这个问题:

我有公司.我有联系人.联系人可以链接到1家公司.公司可以拥有多个联系人.我想创建方法来创建联系人,公司和公司的联系人.

您不必在答案中使用此示例,但它会有所帮助:)

testing tdd ruby-on-rails

167
推荐指数
6
解决办法
5万
查看次数

使用rspec-rails测试文件上载

我想在rails中测试文件上传,但我不知道如何做到这一点.

这是控制器代码:

def uploadLicense
    #Create the license object
    @license = License.create(params[:license]) 


    #Get Session ID
    sessid = session[:session_id]

    puts "\n\nSession_id:\n#{sessid}\n"

    #Generate a random string
    chars = ("a".."z").to_a + ("A".."Z").to_a + ("0".."9").to_a
    newpass = ""
    1.upto(5) { |i| newpass << chars[rand(chars.size-1)] }

    #Get the original file name
    upload=params[:upload]
    name =  upload['datafile'].original_filename 

    @license.format = File.extname(name)

    #calculate license ID and location
    @license.location = './public/licenses/' + sessid + newpass + name 

    #Save the license file
    #Fileupload.save(params[:upload], @license.location) 
    File.open(@license.location, "wb") { |f| f.write(upload['datafile'].read) }

     #Set license …
Run Code Online (Sandbox Code Playgroud)

tdd file-upload ruby-on-rails rspec-rails

138
推荐指数
5
解决办法
7万
查看次数

单元测试中的随机数据?

我有一个同事为对象填​​充单元测试,这些对象用随机数据填充他们的字段.他的理由是它提供了更广泛的测试,因为它将测试许多不同的值,而普通测试仅使用单个静态值.

我给了他很多不同的理由,主要是:

  • 随机值意味着测试不是真正可重复的(这也意味着如果测试可以随机失败,它可以在构建服务器上执行此操作并中断构建)
  • 如果它是一个随机值并且测试失败,我们需要a)修复对象并且b)强迫我们每次都测试该值,所以我们知道它有效,但由于它是随机的,我们不知道它的值是什么

另一名同事补充道:

  • 如果我正在测试异常,则随机值将无法确保测试最终处于预期状态
  • 随机数据用于清除系统和负载测试,而不是用于单元测试

任何人都可以添加其他原因我可以让他让他停止这样做吗?

(或者,这是一种可接受的编写单元测试的方法,我和我的其他同事都错了?)

tdd unit-testing mocking

133
推荐指数
10
解决办法
3万
查看次数