小编Giu*_*cin的帖子

Moq - 是否可以在设置中指定验证标准(例如,被称为时间)?

如果需要设置返回值,以及验证调用表达式的次数,可以在一个语句中执行此操作吗?

从我可以收集到的,Moq的Setup(SomeExpression).Verifiable()调用Verify(),基本上是一个Verify(SomeExpression, Times.AtLeastOnce)?即它验证表达式只被调用.

这是一个更好地解释问题的例子.对于接口:

interface IFoo
{
    int ReturnSomething();
}
Run Code Online (Sandbox Code Playgroud)

以下两个块是否等效(除了第一个将验证标记为可验证的所有设置)?

void Test()
{
    var mock = new Mock<IFoo>();
    mock.Setup((m) => m.ReturnSomething()).Returns(1).Verifiable();

    mock.Verify();
}
Run Code Online (Sandbox Code Playgroud)

void Test()
{
    var mock = new Mock<IFoo>();
    mock.Setup((m) => m.ReturnSomething()).Returns(1);

    mock.Verify((m) => m.ReturnSomething(), Times.AtLeastOnce());
}
Run Code Online (Sandbox Code Playgroud)

如果我想验证调用次数(比如两次),这是唯一的方法,其中表达式重复进行安装和验证吗?

void Test()
{
    var mock = new Mock<IFoo>();
    mock.Setup((m) => m.ReturnSomething()).Returns(1);

    mock.Verify((m) => m.ReturnSomething(), Times.Exactly(2));
}
Run Code Online (Sandbox Code Playgroud)

我只是不喜欢打电话给安装和验证.好吧,因为这对AAA来说是一个好主意,换句话说,我不喜欢重复设置和验证的表达式.目前我将表达式存储在变量中并将其传递给每个方法,但感觉不是那么干净.

PS - 上下文用于检查何时更新缓存(explirations等)的测试

testing installation moq mocking verify

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

找不到Windows服务(刚刚安装)

我刚刚使用VS 2010安装了Windows服务,使用installutil.exe,cmd提示窗口表示提交阶段已成功完成,但我无法在本地服务文件夹中看到Windows服务.

我在这里想念的是什么?

我使用的是Windows 7和VS 2010

更新:
我卸载了服务(名为service1),将名称更改为有意义的东西,安装了服务(与上面相同的过程),仍然无法在服务浏览器中找到它.

FWIW ...我在属性窗口(文件名值)中重命名了我的service1.cs ..但它仍然在服务浏览器中显示service1.我最后也改变了代码中的值(自动生成的代码)this.serviceInstaller1.ServiceName ="service1";

更新(2) 我创建了一个虚拟Windows服务,并且能够成功安装(它提示我输入域登录ID和密码),我能够在服务浏览器中看到它.

但是,我无法在服务浏览器中看到实际的Windows服务(与我的项目相关).显然我有权限,因为我能够安装虚拟服务.

根据这个网站安装后无法看到Windows服务

我在"HKLM\System\CurrentControlSet\Services"路径中看不到注册表中的服务.

更新(3)
日志文件说

在C:中找不到具有RunInstallerAttribute.Yes属性的公共安装程序.

但是,我在项目解决方案中有一个ProjectInstaller.cs文件.

我补充道

[runInstaller的(真)]

到ProjectInstaller.cs文件,仍然没有运气

任何建议?

c# windows-services .net-4.0 visual-studio-2010 windows-7

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

如何在正确位置单击按钮时显示contextmenustrip

我想点击一个按钮,让它在按钮下方显示一个上下文.当我尝试使用pointtoacreen和top和left坐标时,它会一直显示在屏幕的左侧.

有什么建议

c# button contextmenustrip winforms

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

Cordova从http或https网址打开应用程序

我无法找到解决问题的方法.

我找到了许多自定义URL-Sheme的答案,如此(mycoolapp://somepath).

例如,这个插件添加了一个自定义URL-Sheme.

但我不想要一个自定义URL-Sheme,我想要一个像这样的"普通"Url(http://www.mycoolapp.com/somepath).

如果你在浏览器中打开它或者单击超链接,那么它会要求你打开我的应用程序(就像谷歌地图那样).

这个问题可能已经有了答案,但我找不到.

编辑:

如果您不知道我的意思,那么如果您点击Android设备上我的网站链接,那该怎么回事?

只需用我的应用程序选择.

javascript url-scheme cordova

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

如何使用C#创建activex

我想创建一个带有两个输入控件(比如名称和地址)的ActiveX接口,如何使用C#创建它?我有一个简单的"Hello world应用程序"但不知道用输入控件创建ActiveX ...

是否可以使用输入控件创建ActiveX?

c# activex visual-studio-2013

8
推荐指数
0
解决办法
2829
查看次数

无法将类型“System.Linq.IQueryable”隐式转换为“Microsoft.EntityFrameworkCore.Query.IIncludableQueryable”

当我开发我的 ASP.Net 应用程序时,显示以下错误。

错误 CS0266
无法将类型 'System.Linq.IQueryable' 隐式转换为 'Microsoft.EntityFrameworkCore.Query.IIncludableQueryable' 存在显式转换(检查是否缺少强制转换) urlapp12 C:\Users\mjkpt\source\repos\teststage \urlapp12\urlapp12\Controllers\TagsController.cs 37 活动

捕获的错误截图

t.Urlid并且Urlid都是int

包含错误的代码如下:

        //int id, [Bind("BlogId,Userid,Url,Title")] Blog blog
        // GET: Tags
//        public async Task<IActionResult> Index()
        public async Task<IActionResult> Index(int id, [Bind("Urlid,Userid,UrlStr,Title")] Url blog, int Urlid)
        {
            /*
            return View(await _context.Tag.ToListAsync());
            */
            var blogging02Context = _context.Tag.Include(t => t.Blog);

            if (!string.IsNullOrEmpty(Urlid.ToString()))
            {
                blogging02Context = blogging02Context.Where(t => t.Urlid == Urlid);
            }

            ViewBag.Urlid = Urlid;
            return View(await blogging02Context.ToListAsync());

//            return View (await _context.Tag.ToListAsync());
        } …
Run Code Online (Sandbox Code Playgroud)

c# linq asp.net

8
推荐指数
3
解决办法
3244
查看次数

Lambda表达式:将参数转换为基本类型

我想"包装"特定属性的getter函数,该属性是特定类型的一部分.我有一个抽象类,定义如下:

public abstract class MyAbstractClass<T> where T : MyType
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

好吧,假设我有一个类似下面的具体类:

public abstract class MyConcreteClass : MyAbstractClass<MyConcreteType>
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

现在,应该返回getter方法的包装器的helper方法:

private Func<MyAbstractClass<T>, Object> GetPropertyGetter(PropertyInfo property)
{
    var instanceType = Expression.Parameter(property.DeclaringType, "i");

    // Taking getter's "body".
    var getterBody = Expression.Property(instanceType, property);

    // Cast to a generic Object.
    var body = Expression.TypeAs(getterBody, typeof(Object));

    // Build the expression.
    var exp = Expression.Lambda<Func<MyAbstractClass<T>, Object>>(body, instanceType);
    return exp.Compile();
}
Run Code Online (Sandbox Code Playgroud)

就像预期的那样,我得到以下异常:

"MyConcreteClass"类型的ParameterExpression不能用于"MyAbstractClass <MyConcreteType>"类型的委托参数.

有没有办法"强迫"这种铸造?提前致谢.

c# generics lambda

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

什么是 gradlew 任务 assembleAndroidTest 以及 Android 中的测试应用程序是什么?

我已经在 React-Native 中编码了一段时间,当我需要编写一些原生 Android 代码时。但是,直到我开始使用使用此特定 gradle 任务的库之前,我才看到此 gradle 任务。

该库是一个端到端测试库(detox),它使用此命令"cd android && ./gradlew assembleDebug assembleAndroidTest -DtestBuildType=debug && cd .."来构建.apk将在自动化 e2e 测试中使用的 android 。实际上,它构建了两个 apk,一个是 debug,一个是 AndroidTest,但我不知道后者来自哪里,配置在哪里,或者文档在哪里。

我搜索了一个小时,除了这个非常简短的描述之外没有找到任何东西: assembleAndroidTest - Assembles all the Test applications.

什么是测试应用程序?

另外,什么是-DtestBuildType=debug

android react-native react-native-android detox

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

如何实现windows自定义控件的数据绑定?

基本上,我对如何在控制端实现数据绑定感到困惑.

我试图在C#中编写自定义列表控件,它实现了数据绑定.我希望它最终具有与ListView类似的功能,但具有类似于ListBox的接口.
我有一个名为"ListRow"的私有嵌套类,它处理每行的渲染.有一个内部绑定源可以从数据中获取更改,并在必要时使控件无效.现在的问题是我想在ListRow中添加一个复选框,我不确定实现它的最佳方法,以便底层对象的属性得到改变.

.net c# data-binding winforms

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

最好的erlang内存缓存系统跨网络节点= mnesia?

大家早上好

我是erlang的新手,但我正在努力设计我在erlang上的第一个项目尽我所能.这里我需要一些关于erlang内存缓存系统的建议.

  1. 缓存项是基于键值的存储.key通常是ASCII字符串; 值是erlang的类型包括number/list/tuple/etc.
  2. 缓存项可以由任何节点设置.
  3. 缓存项可以由任何节点获取.
  4. 即使在不同的服务器上,也可以跨所有节点共享缓存项
  5. 允许脏读,我不希望任何锁或事务降低性能.
  6. 完全分布式,没有集中式机器或服务.
  7. 很好的表现
  8. 易于安装和部署以及配置和维护

在我看来,第一选择是mnesia,但我没有任何经验.它符合我的要求吗?我的表现如何?

另一个选项是memcached - 但我担心性能低于mnesia,因为执行了额外的序列化/反序列化,因为memcached守护进程来自另一个OS进程.

任何建议都有帮助:)

erlang ets

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