我正在使用Devise构建一个Rails 3应用程序,使用Capybara进行UI测试.以下测试失败:
class AuthenticationTest < ActionController::IntegrationTest
def setup
@user = User.create!(:email => 'test@example.com',
:password => 'testtest',
:password_confirmation => 'testtest')
@user.save!
Capybara.reset_sessions!
end
test "sign_in" do
# this proves the user exists in the database ...
assert_equal 1, User.count
assert_equal 'test@example.com', User.first.email
# ... but we still can't log in ...
visit '/users/sign_in'
assert page.has_content?('Sign in')
fill_in :user_email, :with => 'test@example.com'
fill_in :user_password, :with => 'testtest'
click_button('user_submit')
# ... because this test fails
assert page.has_content?('Signed in successfully.')
end
end
Run Code Online (Sandbox Code Playgroud)
......但我不明白为什么.从代码中可以看出,用户正在数据库中创建; 我正在使用相同的方法来创建用户,就像我在seeds.rb中所做的那样. …
我一直在使用Silverlight工具包,但我发现质量缺乏; 特别是这个内存泄漏/幻像点错误使得Chart组件完全无法使用.
任何人都可以为Silverlight 4.0推荐一个好的图表/图形组件吗?我正在寻找一个提供:
最后一点听起来微不足道,但却绊倒了Silverlight Toolkit Chart; 如果你快速改变轴范围,除了它应该显示的点之外,它有时会留下幻影点.
我正在忙着学习Common Lisp,我正在寻找一种静态代码分析工具,它可以帮助我开发更好的风格并避免陷入常见的陷阱.
我找到了Lisp Critic,我觉得它看起来不错,但我希望有人可以推荐一些其他工具,和/或与他们分享经验.
我在Common Lisp(SBCL)中编写了一个简单的Web scraper作为学习练习,并希望按日期排序.为此,我需要将"MM/DD/YYYY"格式的日期解析为通用时间.
我可以简单地将字符串标记并传入这些位encode-universal-time,但我认为必须有一个用于日期解析的内置函数(或流行的第三方包).我非常感谢有人推荐一个:-)
我有一个正常运行的Silverlight 4应用程序(VS2010,SL4,WCF RIA,使用Cassini,64位Windows 7托管在我的开发盒上).在ClientBin目录中,我有一个描述我的服务的.svc文件:
<% @ServiceHost Service="MyApp.Services.MyService
Factory="System.ServiceModel.DomainServices.Hosting.DomainServiceHostFactory" %>
Run Code Online (Sandbox Code Playgroud)
当我浏览到http:// localhost:52878/ClientBin/MyApp-Services-MyService.svc时,我看到以下内容:
您已创建了一项服务.要测试此服务,您需要创建一个客户端并使用它来调用该服务.您可以使用命令行中的svcutil.exe工具使用以下语法执行此操作:svcutil.exe http:// localhost:52878/ClientBin/MyApp-Services-MyService.svc?wsdl
我想从Windows服务应用程序访问该服务.我的理解是我需要启用SOAP端点才能实现这一点.所以,我将以下内容添加到我的web.config文件中:
<domainServices>
<endpoints>
<add name="soap"
type="System.ServiceModel.DomainServices.Hosting.SoapXmlEndpointFactory,
System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</endpoints>
</domainServices>
Run Code Online (Sandbox Code Playgroud)
首先,Intellisense抱怨标签的存在,说:
元素system.ServiceModel具有无效的子元素domainServices.
其次,前面提到的Silverlight应用程序停止工作,可能是因为此更改打破了底层Web服务.
第三,看起来System.ServiceModel.DomainServices.Hosting程序集实际上并不包含SoapXmlEndpointFactory类型; 如果我在将上面的内容添加到web.config后尝试浏览到该服务,我看到:
无法从程序集'System.ServiceModel.DomainServices.Hosting,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'加载类型'System.ServiceModel.DomainServices.Hosting.SoapXmlEndpointFactory'.
如果我使用Reflector检查程序集,我看到它包含DomainServiceEndpointFactory和PoxBinaryEndpointFactory类型,但没有SoapXmlEndpointFactory.
有人可以让我知道我应该怎么做吗?我不敢相信在Silverlight应用程序之外的其他东西中简单地使用WCF RIA服务应该很难!
我正在尝试用Ruby编写HTTPS客户端.它将使用HTTPS连接到服务器,传递身份验证令牌(通过单独的登录过程获得)和SSL客户端证书.
我正在使用rest-client执行以下操作:
client = RestClient::Resource.new(url,
:ssl_client_cert => OpenSSL::X509::Certificate.new(File.read('./certificate/client-2048.pem')),
:ssl_client_key => OpenSSL::PKey::RSA.new(File.read('./certificate/client-2048.key'), ''),
:verify_ssl => OpenSSL::SSL::VERIFY_NONE)
# ...
headers = {
'X-Application' => APP_KEY,
'X-Authentication' => @session_token,
'content-type' => 'application/json',
'Accept' => 'application/json'
}
response = client.post(request, headers)
Run Code Online (Sandbox Code Playgroud)
这是有效的,但我想做的是使用keep-alive来避免每次我想提出请求时都要经历整个连接过程.所涉及的延迟使得我正在编写的监控应用程序变得不那么有用.
不过,我不能似乎找到一个Ruby库,它提供了以下内容:
对于应该提供它的休息客户,有一个拉动请求. httparty具有persistent_httparty,但如果它支持SSL客户端证书,则没有相关文档.
我可以fork rest-client,合并现在已经位腐烂的pull-request,并使用它.但是我肯定在这里遗漏了一些东西......是否有现有的图书馆提供我正在寻找的东西?或者一些httparty文档解释了SSL库证书的SSL客户端证书使用情况?
任何帮助将不胜感激.
我已经为我的Cucumber功能添加了一个Around钩子,我曾希望在抛出异常时让pry-rescue启动pry:
Around do |scenario, block|
Pry::rescue do
block.call
end
end
Run Code Online (Sandbox Code Playgroud)
肯定会调用Around钩子,但步骤中抛出的异常不会被拯救.例如这一步:
When(/^I perform the action$/) do
raise 'hell'
end
Run Code Online (Sandbox Code Playgroud)
...导致该功能失败,但不会让我在控制台撬到它.
是否有可能使用黄瓜撬救?我也提出这个问题,因为我怀疑它可能是一个错误.
更新:根据AdamT在评论中的建议,我:
@allow-rescue标签添加到调用故意破坏步骤的功能部件中puts日志记录以验证Around是否正在调用挂钩当异常被提出时,它仍然无法进入pry,但我可以从puts语句中看到它正在进入Around钩子.
我已经指定了几个接口,我使用Entity Framework 4实现了实体.我能想到的最简单的演示代码是:
public class ConcreteContainer : IContainer
{
public EntityCollection<ConcreteChild> Children { get; set; }
}
public class ConcreteChild : IChild
{
}
public interface IContainer
{
IEnumerable<IChild> Children { get; set; }
}
public interface IChild
{
}
Run Code Online (Sandbox Code Playgroud)
我从上面收到以下编译器错误:
'Demo.ConcreteContainer'没有实现接口成员'Demo.IContainer.Children'.'Demo.ConcreteContainer.Children'无法实现'Demo.IContainer.Children',因为它没有匹配的返回类型'System.Collections.Generic.IEnumerable'
我目前的理解是,这是因为IEnumerable(由EntityCollection实现)是协变的,但可能不是逆变的:
此类型参数是协变的.也就是说,您可以使用指定的类型或更多派生的类型.有关协方差和逆变的更多信息,请参阅泛型中的协方差和逆变.
我是否正确,如果是这样,有什么方法可以实现我的目标,IContainer纯粹根据其他接口而不是使用具体类来指定接口?
或者,我是否误解了一些更基本的东西?
我在VBA中有以下代码(驻留在Excel 2007工作簿中):
Public Function Multiply(a As Double, b As Double) As Double
Multiply = a * b
End Function
Run Code Online (Sandbox Code Playgroud)
如果我从其他VBA代码调用Multiply,它将返回正确的值.但是,当我从C#调用Multiply时:
var excel = new Application {Visible = true};
excel.Workbooks.Open(filename);
var returned = excel.Run("Sheet1.Multiply", (Double) a, (Double) b);
Run Code Online (Sandbox Code Playgroud)
...乘法发生(我可以通过向VBA中的Multiply函数添加跟踪来验证这一点)但是返回的值在我的C#代码中不可用; returned永远null.
有人可以告诉我如何从我的C#代码中获取Multiply的返回值吗?
我即将构建我的第一个基于Lisp的严肃项目:一个需要扩展到成千上万用户的Web应用程序(不兼容 - 可能是数百个,最多同时).
我打算使用的堆栈看起来像:
我有两个值得关注的领域.这个堆栈:
大象死了吗?最新版本已经持续了三年......这可能只是意味着它的稳定我猜:-)
作为Lisp的一个相对新手(但具有重要的RoR和ASP.NET经验),这些技术中的任何一种都可能让我头脑发热吗?
对我的选择和替代方案的建议的反馈将不胜感激.
c# ×4
common-lisp ×3
ruby ×2
.net ×1
capybara ×1
charts ×1
covariance ×1
cucumber ×1
excel ×1
graphing ×1
http ×1
https ×1
keep-alive ×1
pry ×1
silverlight ×1
soap ×1
testing ×1
vba ×1