我知道通常你可以通过在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,则会显示我的页面而不显示身份验证对话框.
我有一个令人沮丧的时间试图找到有关PHPUnit的Selenium 2的任何信息,除了源代码和我可以"浏览"以"弄明白"的测试.每个人的最爱似乎都是
https://github.com/sebastianbergmann/phpunit-selenium/blob/master/Tests/Selenium2TestCaseTest.php
...但我肯定不需要挖掘数百行来源来获得简单问题的答案?我在哪里可以找到初学者指南,基本文档或任何其他内容?
我最近和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
有没有人知道如何让一个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)
谢谢
我一直在遵循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的新手,所以我对语言和框架并不熟悉.
提前致谢!
我正在为远程存储文件的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测试上传文件到控制器的方式吗?如果是这样,为什么它不像浏览器一样工作?
作为一个说明,我真的不想切换测试框架.谢谢!
我是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
我需要编写一个功能测试套件(它将测试GraphQl API).测试套件将位于API的单独repo和容器中.
我想到的一种方法是在测试套件中使用BDD框架.该套件在收到HTTP请求后将运行所有BDD测试.
我正在考虑使用Cucumber.js作为BDD框架.我知道有npm test.我不确定如何执行测试.以这种方式使用单元测试框架感觉有点尴尬.这种方法有意义吗?
做这样的事情有什么工具?我愿意考虑各种语言和工具.
我打算在我的项目中的请求和响应中使用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].但对于功能测试,我只找到post和xhr(别名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 …
在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