标签: testing

轻松清理sinon存根

有没有办法轻松重置所有sinon spys模拟和存根,将与mocha的beforeEach块干净地工作.

我看到沙盒是一个选项,但我不知道如何使用沙盒

beforeEach ->
  sinon.stub some, 'method'
  sinon.stub some, 'mother'

afterEach ->
  # I want to avoid these lines
  some.method.restore()
  some.other.restore()

it 'should call a some method and not other', ->
  some.method()
  assert.called some.method
Run Code Online (Sandbox Code Playgroud)

javascript testing mocha.js stubbing sinon

126
推荐指数
6
解决办法
7万
查看次数

Junit:拆分集成测试和单元测试

我继承了Junit测试的负载,但是这些测试(除了大多数不工作之外)是实际单元测试和集成测试(需要外部系统,db等)的混合.

所以我试图想出一种方法来实际将它们分开,这样我就可以很好地快速运行单元测试,然后进行集成测试.

选项是......

  1. 将它们拆分为单独的目录.

  2. 移至Junit4(从v3开始)并注释类以将它们分开.

  3. 使用文件命名约定来告诉类是什么,即AdapterATest和AdapterAIntergrationTest.

3存在Eclipse可以选择"在所选项目/包或文件夹中运行所有测试"的问题.因此,只需运行集成测试就很难了.

2:冒着开发人员可能开始在单元测试类中编写集成测试的风险,它只会变得混乱.

1:似乎是最好的解决方案,但我的直觉说必须有一个更好的解决方案.

所以这就是我的问题,你如何分解集成测试和适当的单元测试?

testing junit integration-testing unit-testing junit4

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

集成测试和功能测试有什么区别?

功能测试和集成测试是否相同?

您通过单元测试开始测试,然后在完成单元测试后,您将进行集成测试,从而对整个系统进行测试.功能测试与集成测试相同吗?您仍然将整个系统作为一个整体并对其进行功能一致性测试.

testing

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

如何查看capybara中的复选框?

我正在使用Rspec和Capybara.

我怎么写一个步骤来检查checkbox?我已经尝试check了价值,但它找不到我的checkbox.我不知道该怎么做,因为我实际上有相同的ID具有不同的值

这是代码:

 <input id="cityID" type="checkbox" style="text-align: center; opacity: 0;" value="61" name="cityID">
 <input id="cityID" type="checkbox" style="text-align: center; opacity: 0;" value="62" name="cityID">
 <input id="cityID" type="checkbox" style="text-align: center; opacity: 0;" value="63" name="cityID">
Run Code Online (Sandbox Code Playgroud)

ruby testing rspec ruby-on-rails capybara

123
推荐指数
8
解决办法
9万
查看次数

WebDriver:检查元素是否存在?

如何检查Web驱动程序是否存在元素?

真正使用try catch是唯一可行的方法吗?

boolean present;
try {
   driver.findElement(By.id("logoutLink"));
   present = true;
} catch (NoSuchElementException e) {
   present = false;
}
Run Code Online (Sandbox Code Playgroud)

java testing webdriver selenium-webdriver

121
推荐指数
5
解决办法
31万
查看次数

如何在rspec请求规范中设置请求标头?

在控制器规范中,我可以像这样设置http接受标头:

request.accept = "application/json"
Run Code Online (Sandbox Code Playgroud)

但在请求规范中,"请求"对象为零.那我怎么能在这里做呢?

我想将http接受标头设置为json的原因是我可以这样做:

get '/my/path'
Run Code Online (Sandbox Code Playgroud)

而不是这个

get '/my/path.json'
Run Code Online (Sandbox Code Playgroud)

testing json rspec ruby-on-rails

121
推荐指数
9
解决办法
7万
查看次数

JUnit与TestNG

在工作中,我们目前仍在使用JUnit 3来运行我们的测试.我们一直在考虑切换到JUnit 4进行新的测试,但我一直在关注TestNG.您对JUnit 4或TestNG有什么经验,对于大量的测试似乎更好?编写测试的灵活性对我们来说也很重要,因为我们的功能测试涵盖了广泛的方面,需要以各种方式编写才能获得结果.

旧的测试不会被重写,因为他们的工作做得很好.我希望在新测试中看到的是测试编写方式的灵活性,自然断言,分组和易于分布的测试执行.

java testing junit testng

120
推荐指数
10
解决办法
4万
查看次数

Git分支策略与测试/ QA流程集成在一起

我们的开发团队一直在使用GitFlow分支策略,它一直很棒!

最近我们招募了一些测试人员来提高我们的软件质量.这个想法是每个功能都应该由测试人员测试/ QA.

过去,开发人员在单独的功能分支上处理功能,并develop在完成后将它们合并回分支.开发人员将在该feature分支上自行测试他的工作.现在有了测试人员,我们开始问这个问题

测试人员应该在哪个分支上测试新功能?

显然,有两种选择:

  • 在个别功能分支上
  • develop树枝上

测试开发分支

最初,我们相信这是肯定的方法,因为:

  • develop自开发开始以来,该功能已与所有其他功能合并到分支进行测试.
  • 任何冲突都可以在以后检测到
  • 它使测试人员的工作变得轻松,他只是在处理一个分支(develop).他不需要向开发人员询问哪个分支是针对哪个功能的(功能分支是由相关开发人员独立管理的个人分支)

最大的问题是:

  • develop分支被污染与臭虫.

    当测试人员发现错误或冲突时,他会将它们报告给开发人员,开发人员会在开发分支上修复问题(功能分支在合并后被放弃),之后可能需要更多修复.多个子序列提交或合并(如果develop再次在分支上重新创建分支以修复错误),develop如果可能的话,从分支回滚功能非常困难.develop在不同时间有多个功能合并到分支并在其上固定.当我们想要创建仅包含develop分支中某些功能的版本时,这会产生一个大问题

功能分支测试

所以我们再次思考并决定我们应该在功能分支上测试功能.在我们测试之前,我们将更改从develop分支合并到功能分支(赶上develop分支).这很好:

  • 您仍然可以使用主流中的其他功能测试该功能
  • 进一步的开发(例如错误修复,解决冲突)不会污染develop分支;
  • 在完全测试和批准之前,您可以轻松决定不发布该功能;

但是,存在一些缺点

  • 测试人员必须合并代码,如果有任何冲突(非常可能),他必须向开发人员寻求帮助.我们的测试人员专门从事测试,无法编码.
  • 可以在不存在其他新功能的情况下测试功能.例如,特征A和B同时都在测试中,这两个特征彼此不知道,因为它们都没有合并到develop分支.这意味着,develop无论如何,当两个功能都合并到开发分支时,您将不得不再次测试分支.你必须记得将来测试这个.
  • 如果功能A和B都经过测试和批准,但在合并时发现冲突,两个功能的开发人员都认为这不是他自己的错误/工作,因为他的功能分支超过了测试.沟通会产生额外的开销,有时解决冲突的人会感到沮丧.

以上是我们的故事.由于资源有限,我想避免在所有地方进行测试.我们仍在寻找更好的方法来应对这种情况.我很想知道其他团队如何应对这种情况.

git testing qa git-flow

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

如何从Visual Studio以调试模式运行NUnit?

我最近一直在构建一个C#的测试框架,我一直在努力.我在我的工作区中设置了NUnit和一个新项目来测试组件.如果我从Nunit(v2.4)加载我的单元测试,一切运行良好,但我已经达到了在调试模式下运行并设置一些断点非常有用的地步.

我已经尝试了几个指南中的建议,这些指南都建议更改测试项目的"Debug"属性:

Start external program: C:\Program Files\NUnit 2.4.8\bin\nunit-console.exe
Command line arguments: /assembly: <full-path-to-solution>\TestDSP\bin\Debug\TestDSP.dll
Run Code Online (Sandbox Code Playgroud)

我在那里使用控制台版本,但也试过调用GUI.当我尝试开始调试时,两者都给出了同样的错误:

Cannot start test project 'TestDSP' because the project does not contain any tests.
Run Code Online (Sandbox Code Playgroud)

这是因为我通常将\ DSP.nunit加载到Nunit GUI中并且这是测试所在的位置吗?

我开始认为问题可能是VS想要运行它自己的测试框架,这就是为什么它没能找到NUnit测试?

编辑:对于那些询问测试装置的人,TestDSP项目中的一个.cs文件看起来大致如下:

namespace Some.TestNamespace
{
    // Testing framework includes
    using NUnit.Framework;

    [TestFixture]
    public class FirFilterTest
    {
        [Test]
        public void Test01_ConstructorTest()
        {
            ...some tests...
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

...我对C#和NUnit测试框架都很陌生,所以我完全有可能错过了一些关键的信息;-)

最终解决方案:最大的问题是我使用过的项目.如果您选择Other Languages -> Visual C# -> Test -> Test Project...当您选择项目类型时,Visual Studio将尝试使用它自己的测试框架,据我所知.您应该选择一个正常的 C#类库项目,然后我选择的答案中的说明将起作用.

c# testing nunit unit-testing visual-studio-2008

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

如何在测试环境中运行Rails控制台并加载test_helper.rb?

背景:我遇到了Thoughtbot的"Factory Girl"宝石的一些问题,用于创建在单位和其他测试中使用的对象.我想去控制台并运行不同的Factory Girl电话来查看发生了什么.例如,我想进去那里做...

>> Factory(:user).inspect
Run Code Online (Sandbox Code Playgroud)

我知道你可以在不同的环境中运行控制台......

$ script/console RAILS_ENV = test

但是当我这样做时,工厂课程不可用.看起来好像test_helper.rb没有加载.

我尝试了各种require调用,包括一个绝对路径,test_helper.rb但它们与此类似地失败:

$ script/console RAILS_ENV=test
>> require '/Users/ethan/project/contactdb/test/test_helper.rb'
  Errno::ENOENT: No such file or directory - 
  /Users/ethan/project/contactdb/config/environments/RAILS_ENV=test.rb
Run Code Online (Sandbox Code Playgroud)

格儿.哎呀.

ruby testing ruby-on-rails shoulda

118
推荐指数
4
解决办法
9万
查看次数