验收测试和功能测试之间的真正区别是什么?
每个的亮点或目标是什么?我读到的每个地方都模糊不清.
我正在尝试从我正在开发的API上运行的一组测试中捕获异常,并且我使用Guzzle来使用API方法.我已经将测试包装在try/catch块中,但它仍然会抛出未处理的异常错误.按照文档中的描述添加事件侦听器似乎没有做任何事情.我需要能够检索具有500,401,400的HTTP代码的响应,实际上任何不是200的响应,因为如果系统不起作用,系统将根据调用的结果设置最合适的代码.
当前的代码示例
foreach($tests as $test){
$client = new Client($api_url);
$client->getEventDispatcher()->addListener('request.error', function(Event $event) {
if ($event['response']->getStatusCode() == 401) {
$newResponse = new Response($event['response']->getStatusCode());
$event['response'] = $newResponse;
$event->stopPropagation();
}
});
try {
$client->setDefaultOption('query', $query_string);
$request = $client->get($api_version . $test['method'], array(), isset($test['query'])?$test['query']:array());
// Do something with Guzzle.
$response = $request->send();
displayTest($request, $response);
}
catch (Guzzle\Http\Exception\ClientErrorResponseException $e) {
$req = $e->getRequest();
$resp =$e->getResponse();
displayTest($req,$resp);
}
catch (Guzzle\Http\Exception\ServerErrorResponseException $e) {
$req = $e->getRequest();
$resp =$e->getResponse();
displayTest($req,$resp);
}
catch (Guzzle\Http\Exception\BadResponseException $e) {
$req = $e->getRequest();
$resp …Run Code Online (Sandbox Code Playgroud) 我需要一种方法来截取我的功能测试.现在我正在使用Selenium 2和C#绑定.我非常想在测试结束时截取屏幕截图,以确保显示所需的页面.您是否知道我可以将任何特定工具合并到我的C#代码中以触发屏幕截图?我找不到内置的Selenium 2解决方案(没有查看).
我正在使用Rspec为我的控制器进行功能测试.我已将路由器中的默认响应格式设置为JSON,因此每个没有后缀的请求都将返回JSON.
现在在rspec中,当我尝试时,我得到一个错误(406)
get :index
Run Code Online (Sandbox Code Playgroud)
我需要去做
get :index, :format => :json
Run Code Online (Sandbox Code Playgroud)
现在因为我主要使用我的API支持JSON,所以必须为每个请求指定JSON格式是非常多余的.
我可以以某种方式将其设置为我的所有GET请求的默认值吗?(或所有要求)
Ruby在Selenium之上有一个很棒的抽象层,称为Capybara,您可以使用它进行功能/接受/集成测试.它还有另一个名为Cucumber的库,它更进了一步,让你真正用英语编写测试.
这两个库都是在Selenium之上构建的,可以用来测试任何主要的浏览器,但由于它们的抽象层,使用它们编写测试非常容易(好吧,就像功能测试一样简单).
我的问题是:Python有类似的东西吗?我发现Pythonistas使用各种工具进行功能测试但是......
A)Splinter:不使用Selenium(并且没有IE驱动程序)
-EDIT- 看来Spliter现在确实使用了Selenium(见下面的答案).
B)Alfajor:一年多来没有更新; 看起来死了
C)Selenium(原始):很多人似乎直接使用Selenium,但它似乎是一个抽象层可以使它更容易使用
那么,对于Python来说,有没有人知道类似Capybara的东西,或者更好的类似Cucumber的东西(它不必实际使用Selenium,但它需要支持所有主流浏览器)?
*编辑*
对于那些不熟悉Capybara的人来说,它基本上只是添加了一个API,因此您可以执行以下操作来代替正常的Selenium API:
When /I sign in/ do
within("#session") do
fill_in 'Login', :with => 'user@example.com'
fill_in 'Password', :with => 'password'
end
click_link 'Sign in'
end
Run Code Online (Sandbox Code Playgroud)
它被Cucumber使用,让你进一步抽象(几乎到英文):
Scenario Outline: Add two numbers
Given I have entered <input_1> into the calculator
And I have entered <input_2> into the calculator
When I press <button>
Then the result should be <output> on the screen
Examples:
| input_1 | input_2 | button | output | …Run Code Online (Sandbox Code Playgroud) 我正在编写一个应用程序,其中需要检查视图是否没有某些功能 - 特别是因为该功能必须仅呈现给某个安全组中的用户.我正在寻找assert_selects的反面,以便看到没有呈现菜单.
我正在寻找一些测试vim脚本的工具.要么是vim脚本那么
我知道有几个vim脚本进行单元测试,但是它们有点模糊记录,可能实际上可能有用,也可能没用:
因此,非常欢迎来自使用这两个现有模块之一的人员的信息,和/或指向其他更明确可用的选项的链接.
我如何仅从Test 3以下测试中运行?
module.exports = {
'Test 1':function(){},
'Test 2':function(){}
'Test 3':function(){}
}
Run Code Online (Sandbox Code Playgroud)