小编Tom*_*ell的帖子

ASP.NET MVC单元测试 - 会话

搜索了StackOverflow和谷歌我认为我正在做的事情是正确的,但结果似乎并不顺利

    [TestMethod]
    public void LoginAction_Should_Return_View_and_User_Authenticated()
    {
        // Arrange
        var mock = new Mock<ControllerContext>();
        var mockSession = new Mock<HttpSessionStateBase>();
        mock.Setup(p => p.HttpContext.Session).Returns(mockSession.Object);

        var testData = FakeUserData.CreateTestUsers();
        var repository = new FakeUserRepository(testData);
        var controller = new AccountController(repository);
        controller.ControllerContext = mock.Object;

        // Act
        var result = controller.Login("testuser1", "testuser1");

        // Assert
        Assert.AreEqual("testuser1", controller.HttpContext.Session["Username"]);
        Assert.IsTrue((bool)controller.HttpContext.Session["IsAuthenticated"]);
        Assert.IsInstanceOfType(result, typeof(RedirectToRouteResult));
    }
Run Code Online (Sandbox Code Playgroud)

当我运行测试时,controller.HttpContext.Session ["Username"]的值为null,但是我使用Session帮助器将值设置为用户名.我做错了什么,还是其他什么?任何帮助将不胜感激.

asp.net-mvc unit-testing moq session-variables

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

使用Ninject WCF扩展与WCF Web服务

我有一个WCF Web服务,我想在其中使用我希望依赖注入我的WCF Web服务的存储库和服务,但Ninject WCF扩展示例几乎有一个ctor,它实例化每个依赖项的实例,我不想要,我想要一个更纯粹的依赖注入.

有没有人使用Ninject和WCF取得任何成功,谷歌似乎对我正在寻找的主题返回的相关结果很少.

wcf dependency-injection ninject

11
推荐指数
1
解决办法
9738
查看次数

即使再次打开电子邮件,Gmail附加组件onTriggerFunction也只会针对每封电子邮件运行一次

我们正在构建Gmail附加组件,但是我们希望在onTriggerFunction调用附加组件时根据某些业务逻辑显示不同的卡.这在电子邮件打开时第一次运行该功能时工作正常.

我们有条件逻辑,但Gmail似乎缓存了返回第一张卡的初始调用的结果.转到另一封电子邮件并返回原始电子邮件,onTriggerFunction不会再次调用,因此不运行条件逻辑来更改呈现的初始卡.

无论如何,每次打开电子邮件时都要运行onTriggerFunction,而不是只在第一次打开电子邮件时运行?


这是一个带有触发器功能的附加组件,它返回一张显示当前时间的卡片:

Code.js

function buildAddOn(e) {
  var card = CardService.newCardBuilder();
  card.setHeader(CardService.newCardHeader().setTitle(new Date().toLocaleTimeString()));  

  return [card.build()];
}
Run Code Online (Sandbox Code Playgroud)

appsscript.json

{
  "timeZone": "GMT",
  "dependencies": {
  },
  "oauthScopes": ["https://www.googleapis.com/auth/gmail.addons.execute"],
  "gmail": {
    "name": "Minimal example",
    "logoUrl": "https://www.gstatic.com/images/icons/material/system/2x/bookmark_black_24dp.png",
    "contextualTriggers": [{
      "unconditional": {
      },
      "onTriggerFunction": "buildAddOn"
    }],
    "primaryColor": "#4285F4",
    "secondaryColor": "#4285F4",
    "openLinkUrlPrefixes": ["https://mail.google.com/"],
    "version": "TRUSTED_TESTER_V2"
  }
}
Run Code Online (Sandbox Code Playgroud)

导航到较旧的对话时,将显示微调器,然后显示当前时间.但是,当导航回以前显示的对话时,会立即显示旧的时间值,表明正在进行一些缓存:

该问题的演示

加载项中的操作或我们应用中的其他活动可能会影响重新打开以前显示的对话时应显示的内容.这意味着重新显示卡的旧副本会导致用户意外行为.

gmail google-apps-script gmail-addons

11
推荐指数
1
解决办法
376
查看次数

Web部署项目和TeamCity

我正在尝试为解决方案构建Web部署项目2010项目.我已在构建服务器上安装了Windows SDK和Web部署项目2010 RTW,并复制了.targetMSBuild 的缺失文件.

在尝试构建项目时,它会吐出以下错误

C:\ Program Files\MSBuild\Microsoft\WebDeployment\v10.0\Microsoft.WebDeployment.targets(1589,9):错误MSB6004:指定的任务可执行位置"C:\ Program Files\MSBuild\Microsoft\WebDeployment\v10. 0\aspnet_merge.exe"无效.

很遗憾,在Google上搜索有关此错误的结果并未发现任何有价值的内容.任何有助于TeamCity成功构建Web部署项目的帮助将不胜感激.

asp.net msbuild teamcity web-deployment-project

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

TeamCity Agent缺少DotNetFramework4.0_x86,但不是吗?

我一直在尝试将TeamCity从旧服务器安装到新的Windows Server 2008 R2服务器上,我终于完成了所有配置.但是,构建代理说这DotNetFramework4.0_x86在构建代理上不可用,但是安装了.NET 4.0框架.

有没有人遇到过这个问题,它是Windows Server 2008 R2吗?

.net teamcity windows-server-2008-r2

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

jQTouch和Backbone.js路由/视图

如果有人使用与Backbone.js的最新jQTouch和我想知道如果这样他们如何使用骨干路由器和意见处理页面之间过渡,而不是jQTouch自动试图显示div与涉及哈希专用ID.

javascript jqtouch backbone.js

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

jQuery使用ASP.NET MVC和DateTime属性进行flot

我有一个带有整数属性的对象和一个DateTime属性,我想用jQuery flot绘制这些对象的集合,但是我已经尝试使用谷歌搜索示例但没有看,所以我想知道是否有人可以指出我正确的方向将对象集合转换为jQuery flot将理解的数组,我也理解你需要将DateTime转换为Javascript Date.任何有助于朝着正确方向前进的帮助将不胜感激.

asp.net asp.net-mvc jquery

4
推荐指数
1
解决办法
3656
查看次数

Mercurial传出胡克

我正在寻找创建一个Mercurial钩子,当我推送到本地存储库时,它会推送到备份远程存储库.我以为我可以挂钩'传出'钩子,但这会产生一个不太漂亮的无限循环.那么有没有像推后挂钩,或者最好是让我推送的存储库有一个"传入"钩子来推送到远程备份而不是?

mercurial hook push repository mercurial-hook

3
推荐指数
1
解决办法
1049
查看次数

打开Fancybox弹出窗口时添加按钮单击事件

当我使用以下代码加载我的Fancybox弹出窗口时,我正在尝试向按钮标记添加按钮onclick事件:

var processOrder = function(id) {
    $('#processPopupLink').fancybox({
        'hideOnContentClick': false,
        'frameWidth': 850,
        'frameHeight': 695
    }).click();

    $('#processComplete').click(function() {
        alert('debug');
    });
}
Run Code Online (Sandbox Code Playgroud)

但是,当我点击按钮时它没有显示消息框,我不知道为什么它不起作用,任何帮助将不胜感激.

编辑

我不想让它点击按钮,我希望它能够在打开fancybox弹出窗口时为fancybox弹出窗口上的现有按钮添加onclick.

html jquery click

3
推荐指数
1
解决办法
5783
查看次数

某些Python函数的.NET等价物

我试图将一些Python代码移植到.NET,我想知道在.NET中是否存在以下Python函数的等价物,或者某些具有相同功能的代码片段.

os.path.split()
os.path.basename()
Run Code Online (Sandbox Code Playgroud)

编辑

Python中的os.path.basename()返回os.path.split的尾部,而不是System.IO.Path.GetPathRoot(path)的结果

我认为以下方法创建了一个合适的os.path.split函数端口,欢迎任何调整.它遵循http://docs.python.org/library/os.path.html中对os.path.split的描述,我认为尽可能多.

    public static string[] PathSplit(string path)
    {
        string head = string.Empty;
        string tail = string.Empty;

        if (!string.IsNullOrEmpty(path))
        {
            head = Path.GetDirectoryName(path);
            tail = path.Replace(head + "\\", "");
        }

        return new[] { head, tail };
    }
Run Code Online (Sandbox Code Playgroud)

我不确定我返回头部和尾部的方式,因为我真的不想通过参数传递头部和尾部的方法.

c# python porting

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