有没有办法轻松重置所有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) 我继承了Junit测试的负载,但是这些测试(除了大多数不工作之外)是实际单元测试和集成测试(需要外部系统,db等)的混合.
所以我试图想出一种方法来实际将它们分开,这样我就可以很好地快速运行单元测试,然后进行集成测试.
选项是......
将它们拆分为单独的目录.
移至Junit4(从v3开始)并注释类以将它们分开.
使用文件命名约定来告诉类是什么,即AdapterATest和AdapterAIntergrationTest.
3存在Eclipse可以选择"在所选项目/包或文件夹中运行所有测试"的问题.因此,只需运行集成测试就很难了.
2:冒着开发人员可能开始在单元测试类中编写集成测试的风险,它只会变得混乱.
1:似乎是最好的解决方案,但我的直觉说必须有一个更好的解决方案.
所以这就是我的问题,你如何分解集成测试和适当的单元测试?
功能测试和集成测试是否相同?
您通过单元测试开始测试,然后在完成单元测试后,您将进行集成测试,从而对整个系统进行测试.功能测试与集成测试相同吗?您仍然将整个系统作为一个整体并对其进行功能一致性测试.
我正在使用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) 如何检查Web驱动程序是否存在元素?
真正使用try catch是唯一可行的方法吗?
boolean present;
try {
driver.findElement(By.id("logoutLink"));
present = true;
} catch (NoSuchElementException e) {
present = false;
}
Run Code Online (Sandbox Code Playgroud) 在控制器规范中,我可以像这样设置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) 在工作中,我们目前仍在使用JUnit 3来运行我们的测试.我们一直在考虑切换到JUnit 4进行新的测试,但我一直在关注TestNG.您对JUnit 4或TestNG有什么经验,对于大量的测试似乎更好?编写测试的灵活性对我们来说也很重要,因为我们的功能测试涵盖了广泛的方面,需要以各种方式编写才能获得结果.
旧的测试不会被重写,因为他们的工作做得很好.我希望在新测试中看到的是测试编写方式的灵活性,自然断言,分组和易于分布的测试执行.
我们的开发团队一直在使用GitFlow分支策略,它一直很棒!
最近我们招募了一些测试人员来提高我们的软件质量.这个想法是每个功能都应该由测试人员测试/ QA.
过去,开发人员在单独的功能分支上处理功能,并develop在完成后将它们合并回分支.开发人员将在该feature分支上自行测试他的工作.现在有了测试人员,我们开始问这个问题
测试人员应该在哪个分支上测试新功能?
显然,有两种选择:
develop树枝上最初,我们相信这是肯定的方法,因为:
develop自开发开始以来,该功能已与所有其他功能合并到分支进行测试.develop).他不需要向开发人员询问哪个分支是针对哪个功能的(功能分支是由相关开发人员独立管理的个人分支)最大的问题是:
该develop分支被污染与臭虫.
当测试人员发现错误或冲突时,他会将它们报告给开发人员,开发人员会在开发分支上修复问题(功能分支在合并后被放弃),之后可能需要更多修复.多个子序列提交或合并(如果develop再次在分支上重新创建分支以修复错误),develop如果可能的话,从分支回滚功能非常困难.develop在不同时间有多个功能合并到分支并在其上固定.当我们想要创建仅包含develop分支中某些功能的版本时,这会产生一个大问题
所以我们再次思考并决定我们应该在功能分支上测试功能.在我们测试之前,我们将更改从develop分支合并到功能分支(赶上develop分支).这很好:
develop分支;但是,存在一些缺点
develop分支.这意味着,develop无论如何,当两个功能都合并到开发分支时,您将不得不再次测试分支.你必须记得将来测试这个.以上是我们的故事.由于资源有限,我想避免在所有地方进行测试.我们仍在寻找更好的方法来应对这种情况.我很想知道其他团队如何应对这种情况.
我最近一直在构建一个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#类库项目,然后我选择的答案中的说明将起作用.
背景:我遇到了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)
格儿.哎呀.