我有这样的测试:
[TestCase("~/page/myaction")]
public void Page_With_Custom_Action(string path) {
// Arrange
var pathData = new Mock<IPathData>();
var pageModel = new Mock<IPageModel>();
var repository = new Mock<IPageRepository>();
var mapper = new Mock<IControllerMapper>();
var container = new Mock<IContainer>();
container.Setup(x => x.GetInstance<IPageRepository>()).Returns(repository.Object);
repository.Setup(x => x.GetPageByUrl<IPageModel>(path)).Returns(() => pageModel.Object);
pathData.Setup(x => x.Action).Returns("myaction");
pathData.Setup(x => x.Controller).Returns("page");
var resolver = new DashboardPathResolver(pathData.Object, repository.Object, mapper.Object, container.Object);
// Act
var data = resolver.ResolvePath(path);
// Assert
Assert.NotNull(data);
Assert.AreEqual("myaction", data.Action);
Assert.AreEqual("page", data.Controller);
}
Run Code Online (Sandbox Code Playgroud)
GetPageByUrl在我的dashboardpathresolver中运行两次,我如何告诉Moq第一次返回null并且pageModel.Ojbect第二次?
我一直在使用Rsense更新我的emacs配置,以允许在键入代码时出现自动完成下拉框.这在大多数文件中运行良好,除了我发现当我在ruby on rails项目中编辑一些代码时,它不允许我从表中选择答案.
这是我的设置:https: //github.com/map7/simple_emacs
我在Ubuntu 10.04下使用它.
对于简单的ruby脚本文件,它工作得很好.我可以打开一个新文件并输入.
"test".up...
Run Code Online (Sandbox Code Playgroud)
就像我输入'p'字符一样,出现了一个选项列表,我可以用箭头键在列表中上下移动,然后用回车键选择一个(例如:upcase).
什么不起作用是当我做一个完全相同的测试,但在rails项目的基本目录中.
更新:
发现问题在于(需要'rails),所以在emacs-rails插件中,自动完成不喜欢它.
更新:
它位于emacs-rails - > rails-project.el中.如果我评论这个宏,那么自动完成工作,否则它不会:
(defmacro* rails-project:with-root ((root) &body body)
"If you use `rails-project:root' or functions related on it
several times in a block of code, you can optimize your code by
using this macro. Also, blocks of code will be executed only if
rails-root exist.
(rails-project:with-root (root)
(foo root)
(bar (rails-core:file \"some/path\")))
"
`(let ((,root (rails-project:root)))
(when ,root
(flet ((rails-project:root () ,root))
,@body))))
Run Code Online (Sandbox Code Playgroud)
有人可以解释为什么这会打破自动完成吗?
假设我有一个SQL语句,它在语法和语义上都是正确的,因此它会执行.
在Management Studio(或任何其他查询工具)中,我如何测试SQL语句,如果我注意到它们破坏了某些内容,则回滚(在单独的查询中?)
我正在尝试与Twitter @Anywhere API一起输出ASP.NET MVC3中的一些Twitter句柄,我无法弄清楚如何在Razor视图中实际转义"@"符号.
有谁知道在Razor中转义"@"字符的语法是什么?
我尝试过使用<text></text>
,导致JIT错误.
我正在动态创建表行.因此,每次添加一行时,我都需要获取最后一行的ID,<tr>
以便我可以创建一个新<tr>
的ID = "(the last row's ID) + 1"
.有没有办法使用jQuery获取最后一行的ID?
见附图.Twitter做得很好.他们有一个布局,我称之为工具栏,缺少一个更好的术语,就在屏幕键盘上方.我怎么能用我的代码做到这一点?
更新: 这是我的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffff">
<RelativeLayout android:id="@+id/actionbarRelativeLayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/actionbar_gradient">
<ImageButton android:id="@+id/imageButton" android:layout_width="wrap_content" android:background="@drawable/stocktwits" android:layout_height="wrap_content"></ImageButton>
<TextView android:layout_width="wrap_content" android:id="@+id/charCountTextView" android:text="140" android:layout_alignParentRight="true" android:layout_height="wrap_content" android:textColor="#ffffff" android:textStyle="bold" android:textSize="18sp" android:gravity="center_vertical" android:layout_centerVertical="true"></TextView>
</RelativeLayout>
<EditText android:layout_width="match_parent" android:id="@+id/composeEditText" android:focusable="true" android:hint="Share an idea with the community" android:gravity="left|top" android:layout_height="fill_parent" android:layout_weight="1"></EditText>
<LinearLayout android:layout_width="match_parent" android:id="@+id/border" android:background="#c4c4c4" android:baselineAligned="false" android:layout_height="1dp"></LinearLayout>
<LinearLayout android:layout_height="wrap_content" android:id="@+id/toolbarLinearLayout" android:orientation="horizontal" android:padding="5dip" android:layout_width="fill_parent" android:background="@drawable/gray_toolbar_gradient">
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/shortenButton" android:background="@drawable/shortenbutton" android:layout_weight="0"></Button>
<LinearLayout android:layout_height="match_parent" android:layout_width="wrap_content" android:id="@+id/linearLayout1" android:layout_weight="1"></LinearLayout>
<CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/twitterCheckBox" android:textColor="#000000" android:layout_weight="0" android:background="@drawable/twittergraybutton"></CheckBox>
<Button android:layout_height="wrap_content" …
Run Code Online (Sandbox Code Playgroud) 有没有办法从API中获取缩短的t.co url?我需要在通过API发布推文之前缩短网址.我该怎么做?这是由Twitter API支持还是我必须使用像bit.ly这样的其他网址缩短器?
我实现IDispatchMessageInspector.AfterReciveRequest然后我这样配置:
<configuration>
<system.serviceModel>
<services>
<service
name="Microsoft.WCF.Documentation.SampleService"
behaviorConfiguration="inspectorBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8080/SampleService" />
</baseAddresses>
</host>
<endpoint
address=""
binding="wsHttpBinding"
contract="Microsoft.WCF.Documentation.ISampleService"
/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="inspectorBehavior">
<serviceInspectors />
</behavior>
</serviceBehaviors>
</behaviors>
<extensions>
<behaviorExtensions>
<add
name="serviceInspectors"
type="Microsoft.WCF.Documentation.InspectorInserter, HostApplication, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
/>
</behaviorExtensions>
</extensions>
</system.serviceModel>
</configuration>
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
我检查我的程序集和我的本地参考,我没有找到Microsoft.WCF.Documentation.InspectorInserter
或HostApplication
我在网上搜索下载HostApplication
DLL但我什么也没找到.
我需要做什么?
我需要实现更多的东西,或者我只需要这个配置.
我们发现自己在许多测试用例中编写重复的夹具/模拟设置 - 就像这种情况:
var fixture = new Fixture().Customize(new AutoMoqCustomization());
var encodingMock = fixture.Freeze<Mock<IEncodingWrapper>>();
var httpClientMock = fixture.Freeze<Mock<IHttpWebClientWrapper>>();
var httpResponseMock = fixture.Freeze<Mock<IHttpWebResponseWrapper>>();
var httpHeaderMock = fixture.Freeze<Mock<IHttpHeaderCollectionWrapper>>();
var etag = fixture.CreateAnonymous<string>();
byte[] data = fixture.CreateAnonymous<byte[]>();
Stream stream = new MemoryStream(data);
encodingMock.Setup(m => m.GetBytes(It.IsAny<string>())).Returns(data);
httpHeaderMock.SetupGet(m => m[It.IsAny<string>()]).Returns(etag).Verifiable();
httpClientMock.Setup(m => m.GetResponse()).Returns(httpResponseMock.Object);
httpResponseMock.Setup(m => m.StatusCode).Returns(HttpStatusCode.OK);
httpResponseMock.SetupGet(m => m.Headers).Returns(httpHeaderMock.Object);
httpResponseMock.Setup(m => m.GetResponseStream()).Returns(stream);
Run Code Online (Sandbox Code Playgroud)
根据测试应该是自包含的并且从头到尾可读的想法,我们不使用神奇的Setup/Teardown方法.
我们可以以任何方式(AutoFixture自定义,辅助方法)减少这些测试的"笨拙的工作"吗?
我想构建一个简单的正则表达式,涵盖引用的字符串,包括其中的任何转义引号.例如,
"This is valid"
"This is \" also \" valid"
Run Code Online (Sandbox Code Playgroud)
显然,像
"([^"]*)"
Run Code Online (Sandbox Code Playgroud)
不起作用,因为它匹配第一个转义引用.
什么是正确的版本?
我想其他转义字符的答案是相同的(只需替换相应的字符).
顺便说一句,我知道"全能"正则表达式
"(.*?)"
Run Code Online (Sandbox Code Playgroud)
但我尽量避免使用它,因为毫不奇怪,它比一个更具体的运行速度慢一些.