小编arc*_*ain的帖子

Moq第一次和第二次使用不同的返回值

我有这样的测试:

    [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第二次?

c# nunit unit-testing moq

232
推荐指数
6
解决办法
7万
查看次数

Emacs Ruby自动完成几乎正常工作

我一直在使用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)

有人可以解释为什么这会打破自动完成吗?

ide emacs elisp ruby-on-rails-3

132
推荐指数
1
解决办法
5190
查看次数

在MS SQL Server Management Studio中处理事务的最佳方法

假设我有一个SQL语句,它在语法和语义上都是正确的,因此它会执行.

在Management Studio(或任何其他查询工具)中,我如何测试SQL语句,如果我注意到它们破坏了某些内容,则回滚(在单独的查询中?)

sql t-sql transactions

122
推荐指数
2
解决办法
17万
查看次数

Razor ViewEngine:如何逃避"@"符号?

我正在尝试与Twitter @Anywhere API一起输出ASP.NET MVC3中的一些Twitter句柄,我无法弄清楚如何在Razor视图中实际转义"@"符号.

有谁知道在Razor中转义"@"字符的语法是什么?

我尝试过使用<text></text>,导致JIT错误.

asp.net escaping razor asp.net-mvc-3 twitter-anywhere

95
推荐指数
3
解决办法
4万
查看次数

使用jQuery获取表的最后一行?

我正在动态创建表行.因此,每次添加一行时,我都需要获取最后一行的ID,<tr>以便我可以创建一个新<tr>ID = "(the last row's ID) + 1".有没有办法使用jQuery获取最后一行的ID?

javascript jquery

50
推荐指数
4
解决办法
8万
查看次数

如何在Android屏幕键盘上方放置布局?

见附图.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)

java keyboard android android-linearlayout

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

是否可以缩短Twitter API中的URL?

有没有办法从API中获取缩短的t.co url?我需要在通过API发布推文之前缩短网址.我该怎么做?这是由Twitter API支持还是我必须使用像bit.ly这样的其他网址缩短器?

api twitter

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

IDIspatchMessageInspector

我实现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.InspectorInserterHostApplication我在网上搜索下载HostApplicationDLL但我什么也没找到.

我需要做什么?

我需要实现更多的东西,或者我只需要这个配置.

c# wcf idispatchmessageinspector

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

单元测试中的重复代码

我们发现自己在许多测试用例中编写重复的夹具/模拟设置 - 就像这种情况:

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自定义,辅助方法)减少这些测试的"笨拙的工作"吗?

c# nunit unit-testing moq autofixture

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

用于匹配转义字符的正则表达式(引号)

我想构建一个简单的正则表达式,涵盖引用的字符串,包括其中的任何转义引号.例如,

"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)

但我尽量避免使用它,因为毫不奇怪,它比一个更具体的运行速度慢一些.

java regex quotes escaping

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