标签: functional-testing

Firefox中的HTTP Basic Auth通过URL不起作用?

我知道通常你可以通过在URL中传递用户名和密码来登录需要使用Selenium进行HTTP基本身份验证的站点,例如:

selenium.open("http://myusername:myuserpassword@mydomain.com/mypath");
Run Code Online (Sandbox Code Playgroud)

我一直在使用Firefox 2或3运行Selenium测试,在那里我仍然得到"需要身份验证"对话框窗口?

更新:似乎不是Selenium问题,而是Firefox问题.如果我在FF中手动输入URL,我将获得身份验证对话框,但如果我在Opera中输入URL,则会显示我的页面而不显示身份验证对话框.

testing selenium functional-testing basic-authentication

18
推荐指数
5
解决办法
4万
查看次数

什么是PHPUnit的任何Selenium 2文档?

我有一个令人沮丧的时间试图找到有关PHPUnit的Selenium 2的任何信息,除了源代码和我可以"浏览"以"弄明白"的测试.每个人的最爱似乎都是

https://github.com/sebastianbergmann/phpunit-selenium/blob/master/Tests/Selenium2TestCaseTest.php

...但我肯定不需要挖掘数百行来源来获得简单问题的答案?我在哪里可以找到初学者指南,基本文档或任何其他内容?

php phpunit functional-testing selenium-webdriver

17
推荐指数
1
解决办法
6563
查看次数

让Dagger在为Android进行espresso功能测试时注入模拟对象

我最近和Dagger一起吃饱了,因为DI的概念完全合情合理.DI的一个更好的"副产品"(杰克沃顿在他的一个演讲中提出)更易于测试.

所以现在我基本上使用espresso做一些功能测试,我希望能够将虚拟/模拟数据注入应用程序并让活动显示出来.我猜是因为,这是DI的最大优势之一,这应该是一个相对简单的问题.出于某种原因,我似乎无法绕过它.任何帮助将非常感激.这是我到目前为止(我写了一个反映我当前设置的例子):

public class MyActivity
    extends MyBaseActivity {

    @Inject Navigator _navigator;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        MyApplication.get(this).inject(this);

        // ...

        setupViews();
    }

    private void setupViews() {
        myTextView.setText(getMyLabel());
    }

    public String getMyLabel() {
        return _navigator.getSpecialText(); // "Special Text"
    }
}
Run Code Online (Sandbox Code Playgroud)

这些是我的匕首模块:

// Navigation Module

@Module(library = true)
public class NavigationModule {

    private Navigator _nav;

    @Provides
    @Singleton
    Navigator provideANavigator() {
        if (_nav == null) {
            _nav = new Navigator();
        }
        return _nav;
    }
}

// App level module

@Module(
    includes = …
Run Code Online (Sandbox Code Playgroud)

android dependency-injection functional-testing dagger android-espresso

17
推荐指数
2
解决办法
9882
查看次数

(Rails)Assert_Select的恼人警告

有没有人知道如何让一个rake测试期间assert_select不输出所有那些讨厌的html警告?你知道,像这样的东西:

.ignoring attempt to close body with div
opened at byte 1036, line 5
closed at byte 5342, line 42
attributes at open: {"class"=>"inner02"}
text around open: "</script>\r\t</head>\r\t<body class=\"inner02"
text around close: "\t</div>\r\t\t\t</div>\r\t\t</div>\r\t</body>\r</ht"
Run Code Online (Sandbox Code Playgroud)

谢谢

ruby-on-rails functional-testing

16
推荐指数
2
解决办法
2865
查看次数

Mocha Mock进行另一项测试

我一直在遵循15个TDD步骤来创建Rails应用程序指南 - 但是遇到了一个我似乎无法解决的问题.对于WordsController的功能测试,我有以下代码:

class WordsControllerTest < ActionController::TestCase

  test "should get learn" do
    get 'learn'
    assert_response :success
  end

  test "learn passes a random word" do    
    some_word = Word.new
    Word.expects(:random).returns(some_word)
    get 'learn'
    assert_equal some_word, assigns('word')
  end
end
Run Code Online (Sandbox Code Playgroud)

在Word类中,我有以下代码:

class Word < ActiveRecord::Base
  def self.random
    all = Word.find :all
    all[rand(all.size)]
  end
end
Run Code Online (Sandbox Code Playgroud)

当我运行测试时,我遇到以下错误(为简洁起见缩短):

1) Failure: unexpected invocation: Word(...).random() satisfied expectations:
- expected exactly once, already invoked once: Word(...).random()
Run Code Online (Sandbox Code Playgroud)

我已经尝试过更改测试顺序以及其他许多内容,但是我一次又一次地继续接收相同的测试失败 - 已经调用了Word.random().

我正在运行Rails 3.0 beta 4和Mocha 0.9.8.我一直在努力寻找解决问题的方法,但我似乎无法找到它.我是Ruby/Rails的新手,所以我对语言和框架并不熟悉.

提前致谢!

ruby functional-testing mocha.js

16
推荐指数
2
解决办法
3669
查看次数

Rails功能测试用例并将文件上传到ActionDispatch :: Http :: UploadFile

我正在为远程存储文件的Rails应用程序添加测试.我正在使用默认的Rails功能测试.如何向他们添加文件上传?我有:

test "create valid person" do
  post(:create, :person => { :avatar => fixture_file_upload('avatar.jpeg') })
end
Run Code Online (Sandbox Code Playgroud)

这由于某种原因上传a Tempfile并导致AWS/S3gem失败:

NoMethodError: undefined method `bytesize' for Tempfile
Run Code Online (Sandbox Code Playgroud)

他们是否可以ActionDispatch::Http::UploadedFile通过网络浏览器进行测试,以获得测试使用和执行更多的测试?是fixture_file_upload测试上传文件到控制器的方式吗?如果是这样,为什么它不像浏览器一样工作?

作为一个说明,我真的不想切换测试框架.谢谢!

ruby gem ruby-on-rails functional-testing

16
推荐指数
1
解决办法
7845
查看次数

Robolectric:IllegalStateException:您需要在此活动中使用Theme.AppCompat主题(或后代)

我是Android上Robolectric和仪器测试的新手.我按照Robolectric指南进行了第一次测试.但是我得到了:

java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.

我搜索了错误,但没有解决方案有帮助.我包括可能导致此错误的所有内容.

摇篮:

apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt' //needed for source code generation
apply plugin: 'jacoco'
apply plugin: 'de.mobilej.unmock'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    testOptions {
        unitTests.returnDefaultValues = true
    }

    defaultConfig {
        applicationId "#######"
        minSdkVersion 15
        targetSdkVersion 22
        testHandleProfiling true
        testFunctionalTest true
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        debug{
            testCoverageEnabled false
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    lintOptions …
Run Code Online (Sandbox Code Playgroud)

java android functional-testing illegalstateexception robolectric

16
推荐指数
3
解决办法
6252
查看次数

如何测试GraphQl API?

我需要编写一个功能测试套件(它将测试GraphQl API).测试套件将位于API的单独repo和容器中.

我想到的一种方法是在测试套件中使用BDD框架.该套件在收到HTTP请求后将运行所有BDD测试.

我正在考虑使用Cucumber.js作为BDD框架.我知道有npm test.我不确定如何执行测试.以这种方式使用单元测试框架感觉有点尴尬.这种方法有意义吗?

做这样的事情有什么工具?我愿意考虑各种语言和工具.

testing functional-testing graphql

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

如何在rails 3功能测试中发布JSON数据

我打算在我的项目中的请求和响应中使用JSON数据,并在测试中遇到一些问题.

搜索一段时间后,我找到以下curl用于发布JSON数据的代码:

curl -H "Content-Type:application/json" -H "Accept:application/json" \
    -d '{ "foo" : "bar" }' localhost:3000/api/new
Run Code Online (Sandbox Code Playgroud)

在控制器中,我可以使用简单的方法访问JSON数据params[:foo].但对于功能测试,我只找到postxhr(别名xml_http_request).

如何在rails中编写功能测试以达到与使用相同的效果curl?或者我应该以其他方式进行测试?

这是我尝试过的.我找到了xhrin 的实现action_controller/test_case.rb,并尝试添加jhr方法只需更改'Conetent-Type'和'HTTP_ACCEPT'.(已添加test/test_helpers.rb)

def json_http_request(request_method, action, parameters = nil, session = nil, flash = nil)
  @request.env['Content-Type'] = 'Application/json'
  @request.env['HTTP_ACCEPT'] ||= [Mime::JSON, Mime::JS, Mime::HTML, Mime::XML, 'text/xml', Mime::ALL].join(', ')
  __send__(request_method, action, parameters, session, flash).tap do
    @request.env.delete 'Content-Type'
    @request.env.delete 'HTTP_ACCEPT'
  end
end
alias jhr :json_http_request
Run Code Online (Sandbox Code Playgroud)

我以同样的方式使用xhr …

json ruby-on-rails functional-testing

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

在Symfony2中测试文件上载

在Symfony2文档中,它提供了一个简单的示例:

$client->request('POST', '/submit', array('name' => 'Fabien'), array('photo' => '/path/to/photo'));
Run Code Online (Sandbox Code Playgroud)

模拟文件上传.

但是在我的所有测试中,我在应用程序中的$ request对象中没有得到任何内容,并且$_FILES数组中没有任何内容.

这是一个简单WebTestCase的失败.它是自包含的,并$client根据您传入的参数测试构造的请求.它不测试应用程序.

class UploadTest extends WebTestCase {

    public function testNewPhotos() {
        $client = $this->createClient();
        $client->request(
            'POST', 
            '/submit', 
            array('name' => 'Fabien'), 
            array('photo' => __FILE__)
        );

        $this->assertEquals(1, count($client->getRequest()->files->all()));
    }
}
Run Code Online (Sandbox Code Playgroud)

只是为了清楚.这不是关于如何进行文件上传的问题,我可以做.它是关于如何在Symfony2中测试它们.

编辑

我确信我做得对.所以我已经为Framework创建了一个测试并发出了拉取请求. https://github.com/symfony/symfony/pull/1891

phpunit integration-testing file-upload functional-testing symfony

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