小编Dun*_*yne的帖子

没有用Capybara测试Devise

我正在使用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中所做的那样. …

testing capybara ruby-on-rails-3

12
推荐指数
1
解决办法
4537
查看次数

好的Silverlight 4.0图表/图形组件?

我一直在使用Silverlight工具包,但我发现质量缺乏; 特别是这个内存泄漏/幻像点错误使得Chart组件完全无法使用.

任何人都可以为Silverlight 4.0推荐一个好的图表/图形组件吗?我正在寻找一个提供:

  • 多个同时串联,分散和线
  • 多选点
  • 可配置的工具提示
  • 自动轴缩放
  • 实时更新数据

最后一点听起来微不足道,但却绊倒了Silverlight Toolkit Chart; 如果你快速改变轴范围,除了它应该显示的点之外,它有时会留下幻影点.

c# silverlight charts graphing silverlight-4.0

11
推荐指数
2
解决办法
1508
查看次数

Common Lisp的静态代码分析工具?

我正在忙着学习Common Lisp,我正在寻找一种静态代码分析工具,它可以帮助我开发更好的风格并避免陷入常见的陷阱.

我找到了Lisp Critic,我觉得它看起来不错,但我希望有人可以推荐一些其他工具,和/或与他们分享经验.

static-analysis common-lisp

10
推荐指数
1
解决办法
1398
查看次数

在Common Lisp中解析日期的包?

我在Common Lisp(SBCL)中编写了一个简单的Web scraper作为学习练习,并希望按日期排序.为此,我需要将"MM/DD/YYYY"格式的日期解析为通用时间.

我可以简单地将字符串标记并传入这些位encode-universal-time,但我认为必须有一个用于日期解析的内置函数(或流行的第三方包).我非常感谢有人推荐一个:-)

common-lisp

8
推荐指数
1
解决办法
2090
查看次数

如何从Windows服务访问WCF RIA服务?

我有一个正常运行的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服务应该很难!

c# soap wcf-ria-services

7
推荐指数
1
解决办法
5208
查看次数

具有HTTPS,SSL客户端证书和Keep-Alive支持的Ruby的HTTP库?

我正在尝试用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库,它提供了以下内容:

  • HTTPS支持
  • SSL客户端证书支持
  • 活着

对于应该提供它的休息客户,有一个拉动请求. httparty具有persistent_httparty,但如果它支持SSL客户端证书,则没有相关文档.

我可以fork rest-client,合并现在已经位腐烂的pull-request,并使用它.但是我肯定在这里遗漏了一些东西......是否有现有的图书馆提供我正在寻找的东西?或者一些httparty文档解释了SSL库证书的SSL客户端证书使用情况?

任何帮助将不胜感激.

ruby https http keep-alive

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

使用pry-rescue来调试Cucumber步骤中的异常

我已经为我的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钩子.

ruby cucumber pry

7
推荐指数
1
解决办法
2644
查看次数

Contravariance和Entity Framework 4.0:如何将EntityCollection指定为IEnumerable?

我已经指定了几个接口,我使用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纯粹根据其他接口而不是使用具体类来指定接口?

或者,我是否误解了一些更基本的东西?

c# covariance

6
推荐指数
1
解决办法
1072
查看次数

从.NET中的VBA函数访问返回值?

我在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的返回值吗?

.net c# excel vba office-interop

6
推荐指数
1
解决办法
2962
查看次数

精选技术.用于Web应用程序的堆栈 - 批评/评论?

我即将构建我的第一个基于Lisp的严肃项目:一个需要扩展到成千上万用户的Web应用程序(不兼容 - 可能是数百个,最多同时).

我打算使用的堆栈看起来像:

我有两个值得关注的领域.这个堆栈:

  • 大象死了吗?最新版本已经持续了三年......这可能只是意味着它的稳定我猜:-)

  • 作为Lisp的一个相对新手(但具有重要的RoR和ASP.NET经验),这些技术中的任何一种都可能让我头脑发热吗?

对我的选择和替代方案的建议的反馈将不胜感激.

common-lisp

6
推荐指数
1
解决办法
705
查看次数