我正在以测试驱动的方式使用ASP.NET MVC解决方案,我想使用表单身份验证将用户登录到我的应用程序.我想在控制器中得到的代码看起来像这样:
FormsAuthentication.SetAuthCookie(userName, false);
Run Code Online (Sandbox Code Playgroud)
我的问题是如何编写测试来证明这段代码的合理性?
有没有办法检查使用正确的参数调用SetAuthCookie方法?
有没有办法注入假/模拟FormsAuthentication?
我知道的开发人员只是向我展示了FubuMVC,我们是否应该尝试在真实的实际项目中使用它,这是一个问题.目前的设计选择是ASP.NET MVC.
我有兴趣发现的是:
ASP.NET MVC和FubuMVC之间的核心区别是什么?
两种框架的收益/损失是什么?
FubuMVC准备好迎接黄金时段吗?
你会在新项目中使用这两个中的哪一个?
如果我有一个需要使用不同值运行的规范,以使其驱动真正的实现而不是一个天真的实现.一个例子:
it "should return 'fizz' for multiples of three" do
@fizzbuzz.get_value(3).should == "fizz"
end
Run Code Online (Sandbox Code Playgroud)
到目前为止,我还没有找到任何方法将3输入作为参数.下面的规范解决了我的问题,但我想知道这是否是推荐的方式,或者是否还有其他更好的方法.
it "should return 'fizz' for multiples of three" do
[3, 6].each{|number| @fizzbuzz.get_value(number).should == "fizz" }
end
Run Code Online (Sandbox Code Playgroud)
我不喜欢这个,因为它使用循环,它不可读,它只在运行时显示为一个规范,我宁愿让它显示为两个不同的测试.
我正在尝试从用户输入中解析URI.我假设一些用户不会将该方案放在他们的URI中,我想默认为"http".
以下代码不起作用:
require 'uri'
uri_to_check = URI::parse("www.google.com")
uri_to_check.scheme = "http" unless uri_to_check.scheme
puts uri_to_check.to_s
Run Code Online (Sandbox Code Playgroud)
我希望看到" http://www.google.com ",但我会收到"http:www.google.com".甚至可以这样做吗?
如果是这样,我错过了什么?
有一个更好的方法吗?
在我看来,大多数人在使用NHibernate时会针对像SQLite这样的内存中进程数据库编写测试.我已经启动并运行了,但我的第一个测试(使用NHibernate)总是需要3-4秒才能执行.下一个测试运行得更快.
我使用FluentNhibernate进行映射,但使用XML映射文件获得大致相同的时序.对我而言,3-4秒的延迟严重扰乱了我的流量.
推荐使用TDD和NHibernate的方式是什么?
是否可以模拟ISession对实际查询进行单元测试,还是只能在内存数据库中完成?
我是ASP.NET MVC的新手,我正在尝试在视图中工作时获取完整的url.我需要将此作为回调提交给第三方API.例如我需要的是什么
我用的时候
<%= Url.Action("action", "controller") %>
Run Code Online (Sandbox Code Playgroud)
我明白了
/控制器/动作
我知道几种方法来添加服务器基本路径,但我想知道在ASP.NET MVC视图中执行此操作的首选方法是什么?
编辑:只是为了澄清,它不是当前视图/动作的URL,它是同一个控制器中的另一个动作.
我试图找到一种方法来修改/扩展RakeFile从另一个RakeFile而不实际更改它.
当我运行我的rake任务时,我从SVN中检索一个包含rakefile的解决方案.我想要:
我希望这样做,而不是实际修改光盘上的原始RakeFile.
asp.net-mvc ×3
ruby ×3
tdd ×3
unit-testing ×2
.net ×1
alt.net ×1
build ×1
fubumvc ×1
mocking ×1
nhibernate ×1
rake ×1
rspec ×1
rspec2 ×1
uri ×1
url ×1