标签: tdd

如何测试Meteor应用程序?

测试使用框架开发的Web应用程序的推荐方法有哪些?

关于TDD最佳实践的流星非官方FAQ条目很短.

testing tdd meteor

41
推荐指数
2
解决办法
1942
查看次数

我应该使用TDD吗?

我是我(非常小)公司中唯一的开发人员,我即将开始为该公司开发一个中型ASP.NET Web应用程序.

我想弄清楚我是否应该学习测试驱动开发(TDD)并在此应用程序中实现它.

我需要很快开始开发我们的新应用程序,我担心测试.我已编程多年但从未进行任何单元测试.

我已经阅读了很多关于TDD的在线资源,但我不确定我是否会对它进行"足够好"的掌握以使其在应用程序中有效.

.net tdd asp.net-mvc

40
推荐指数
5
解决办法
3703
查看次数

Bash和测试驱动开发

在bash中编写多个简单的脚本时,我常常想知道如何使代码可测试.

通常很难为bash代码编写测试,因为它在获取值并返回值的函数上很少,而在检查和设置环境中的某些方面的函数中很高,修改文件系统,调用程序等 - 依赖于环境或具有副作用的功能.因此,设置和测试代码变得比它们测试的代码复杂得多.


例如,考虑一个简单的测试函数:

function add_to_file() {
  local f=$1
  cat >> $f
  sort -u $f -o $f
}
Run Code Online (Sandbox Code Playgroud)

此功能的测试代码可能包括:

add_to_file.before:

foo
bar
baz
Run Code Online (Sandbox Code Playgroud)

add_to_file.after:

bar
baz
foo
qux
Run Code Online (Sandbox Code Playgroud)

和测试代码:

function test_add_to_file() {
   cp add_to_file.{before,tmp}
   add_to_file add_to_file.tmp
   cmp add_to_file.{tmp,after} && echo pass || echo fail
   rm add_to_file.tmp
}
Run Code Online (Sandbox Code Playgroud)

这里有5行代码由6行测试代码和7行数据测试.


现在考虑一个稍微复杂的案例:

function distribute() {
   local file=$1 ; shift
   local hosts=( "$@" )
   for host in "${hosts[@]}" ; do
     rsync -ae ssh $file $host:$file
   done
}
Run Code Online (Sandbox Code Playgroud)

我甚至不能说如何开始为此测试...


那么,有一个很好的方法在bash脚本中做TDD,还是我应该放弃并把我的努力放在别的地方?

bash tdd

40
推荐指数
4
解决办法
1万
查看次数

如何将消息附加到rspec检查?

在rspec中:我可以像在xUnit样式测试框架中那样将消息附加到支票上吗?怎么样?

assert_equal value1, value2, "something is wrong"
Run Code Online (Sandbox Code Playgroud)

ruby tdd rspec xunit

40
推荐指数
3
解决办法
1万
查看次数

如何将此文件加载到NUnit测试中?

我有以下IntegrationTest项目结构......

在此输入图像描述

如果我想使用测试数据126.txt中的NUnit Test,我怎么加载普通的txt文件的数据?

注意:文件是-linked-,我正在使用c#(如图所示).

欢呼:)

.net c# testing tdd nunit

40
推荐指数
4
解决办法
3万
查看次数

PHPUnit:期望方法意义

当我创建一个新的模拟时,我需要调用expected方法.到底是做什么的?它的论点怎么样?

$todoListMock = $this->getMock('\Model\Todo_List');
        $todoListMock->expects($this->any())
            ->method('getItems')
            ->will($this->returnValue(array($itemMock)));
Run Code Online (Sandbox Code Playgroud)

我找不到任何原因(我试过docs).我已经阅读了这些消息来源,但我无法理解.谢谢.

php tdd phpunit unit-testing mocking

40
推荐指数
2
解决办法
3万
查看次数

.NET是否有填充测试数据的框架?

我使用c#并进行单元测试和集成测试通常我需要根据属性自动填充字段.

假设我们将测试是否可以编写并将用户数据写回数据库.

  • 我创建一个用户对象填充字段写入用户到数据库
  • 从数据库中读取用户对象
  • 如果我写的内容和我读的内容相同,请检查字段

是否有任何框架自动填充用户的测试数据并检查两个对象是否具有相同的值?

示例代码可能是这样的

User user = new User();
AutoPopulator.Populate(user);
user.Save();
Run Code Online (Sandbox Code Playgroud)

.net c# tdd populate

39
推荐指数
2
解决办法
2万
查看次数

如何在RSpec上包含Rails助手

我试图包括一些助手用rspec测试,但没有运气.

我做了什么:

support/helpers.rb在我的spec文件夹下创建了一个文件

支持/ helpers.rb

module Helpers
  include ActionView::Helpers::NumberHelper
  include ActionView::Helpers::TextHelper
end
Run Code Online (Sandbox Code Playgroud)

并试图要求这个文件spec_helper.rb.

# This file is copied to spec/ when you run 'rails generate rspec:install'
require 'rubygems'
require 'spork'
require 'support/helpers'

Spork.prefork do
.
.
end
Run Code Online (Sandbox Code Playgroud)

这会生成以下错误:

/spec/support/helpers.rb:2:in `<module:Helpers>': uninitialized constant Helpers::ActionView (NameError)
Run Code Online (Sandbox Code Playgroud)

我应该如何使用Rspec提供这些助手?

谢谢.

tdd rspec ruby-on-rails rspec2 ruby-on-rails-3

39
推荐指数
2
解决办法
2万
查看次数

使用OCUnit的单元测试示例

我真的很难理解单元测试.我确实理解TDD的重要性,但我读到的所有单元测试的例子似乎都非常简单和微不足道.例如,测试以确保设置属性或将内存分配给数组.为什么?如果我编码..alloc] init],我真的需要确保它有效吗?

我是开发新手,所以我肯定我在这里缺少一些东西,特别是围绕TDD的所有热潮.

我认为我的主要问题是我找不到任何实际的例子.这是一种setReminderId 似乎很适合测试的方法.什么是有用的单元测试看起来确保这是有效的?(使用OCUnit)

- (NSNumber *)setReminderId: (NSDictionary *)reminderData
{
    NSNumber *currentReminderId = [[NSUserDefaults standardUserDefaults] objectForKey:@"currentReminderId"];
    if (currentReminderId) {
        // Increment the last reminderId
        currentReminderId = @(currentReminderId.intValue + 1);
    }
    else {
        // Set to 0 if it doesn't already exist
        currentReminderId = @0;
    }
    // Update currentReminderId to model
    [[NSUserDefaults standardUserDefaults] setObject:currentReminderId forKey:@"currentReminderId"];

    return currentReminderId;
}
Run Code Online (Sandbox Code Playgroud)

tdd unit-testing objective-c ocunit ios

39
推荐指数
1
解决办法
1万
查看次数

使用Cucumber和rspec的BDD - 何时多余?

Rails /工具特定版本:您的单元测试有多深?

现在,我现在写道:

  • 黄瓜功能(集成测试) - 这些测试针对我们的应用程序返回的HTML/JS,但有时也会测试其他内容,例如调用第三方服务.
  • RSpec控制器测试(功能测试),最初只有控制器有任何有意义的逻辑,但现在越来越多.
  • RSpec模型试验(单元试验)

有时这是完全必要的; 有必要测试模型中对最终用户来说并不完全明显或可见的行为.当模型很复杂时,一定要进行测试.但有时候,在我看来,测试是多余的.举例来说,你的测试方法foo如果只是通过所谓的bar,并bar进行测试?如果bar是在Cucumber特性中使用并且可以在黄瓜特征中轻松测试的模型上的简单辅助方法怎么办?你在rspec和Cucumber中测试方法吗?我发现我自己为此而努力,为编写更多的测试需要时间和保持什么是有效的同样的行为,这使得维护测试套件的更多的时间密集,这反过来又使修改更昂贵的多个"版本".

简而言之,您是否认为有时候只写Cucumber功能就足够了?或者你应该总是在每个级别测试?如果您认为存在灰色区域,那么"这需要功能/单元测试"的阈值是多少.实际上,你现在做什么,为什么(或为什么不)你认为这已经足够了?


编辑:这是一个可能是"测试矫枉过正"的例子.不可否认,我能够很快写出来,但这完全是假设的.

tdd unit-testing rspec ruby-on-rails cucumber

38
推荐指数
1
解决办法
3241
查看次数