小编ctr*_*usb的帖子

Using Rhino Mocks to mock an out parameter, which is created within the method I am testing

Trying to mock the following method:

bool IsLoginValid(LoginViewModel viewModel, out User user);
Run Code Online (Sandbox Code Playgroud)

Tried this initially:

dependency<ILoginService>()
.Stub(serv =>
        serv.IsLoginValid(
            Arg<LoginViewModel>.Is.Equal(a_login_viewmodel),
            out Arg<User>.Is.Anything)
.Return(false);
Run Code Online (Sandbox Code Playgroud)

But, that fails, as it is an out parameter. Did a bit of searching around and altered my code like such:

dependency<ILoginService>()
.Stub(serv => 
        serv.IsLoginValid(
            Arg<LoginViewModel>.Is.Equal(a_login_viewmodel), 
            out Arg<User>.Out(new User()).Dummy))
.Return(false);
Run Code Online (Sandbox Code Playgroud)

That also fails. I need 'new User()' to be sort of an 'Anything' argument. As I think that is expecting a specific instance.

Any idea how to …

rhino-mocks

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

Sass加载器不在webpack中工作

我试图在我的webpack配置中获得*.scss文件,但是当我运行webpack build命令时,我不断收到以下错误:

ERROR in ./~/css-loader!./~/sass-loader!./app/styles.scss
Module build failed: TypeError: Cannot read property 'sections' of null
at new SourceMapConsumer (/Users/sean/Development/playground/webpack.sass.test/node_modules/css-loader/node_modules/postcss/node_modules/source-map/lib/source-map/source-map-consumer.js:23:21)
at PreviousMap.consumer (/Users/sean/Development/playground/webpack.sass.test/node_modules/css-loader/node_modules/postcss/lib/previous-map.js:37:34)
at new Input (/Users/sean/Development/playground/webpack.sass.test/node_modules/css-loader/node_modules/postcss/lib/input.js:42:28)
at parse (/Users/sean/Development/playground/webpack.sass.test/node_modules/css-loader/node_modules/postcss/lib/parse.js:17:17)
at new LazyResult (/Users/sean/Development/playground/webpack.sass.test/node_modules/css-loader/node_modules/postcss/lib/lazy-result.js:54:47)
at Processor.process (/Users/sean/Development/playground/webpack.sass.test/node_modules/css-loader/node_modules/postcss/lib/processor.js:30:16)
at processCss (/Users/sean/Development/playground/webpack.sass.test/node_modules/css-loader/lib/processCss.js:168:24)
at Object.module.exports (/Users/sean/Development/playground/webpack.sass.test/node_modules/css-loader/lib/loader.js:21:15)
@ ./app/styles.scss 4:14-117
Run Code Online (Sandbox Code Playgroud)

我不能为我的生活找出原因.这是一个非常基本的设置.

我创建了一个Dropbox共享,其中最简单的说明如下:https: //www.dropbox.com/s/quobq29ngr38mhx/webpack.sass.test.zip?dl = 0

解压缩然后运行:

npm install
webpack
Run Code Online (Sandbox Code Playgroud)

这是我的webpack.config.js文件:

var path = require('path')
var webpack = require('webpack')

module.exports = {
  devtool: 'eval',
  entry: [
    './app'
  ],
  output: {
    path: path.join(__dirname, 'dist'),
    filename: …
Run Code Online (Sandbox Code Playgroud)

sass node.js webpack

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

默认的lodash memoize函数是否存在内存泄漏的危险?

我想使用,memoize但我担心缓存会无限增长,直到发生悲伤.

我无法通过google/stackoverflow搜索找到任何内容.

PS我正在使用lodash v4.

javascript lodash

12
推荐指数
2
解决办法
5189
查看次数

类型映射时的通用属性问题

我有一个库,可导出类似于以下内容的实用程序类型:

type Action<Model extends object> = (data: State<Model>) => State<Model>;
Run Code Online (Sandbox Code Playgroud)

此实用程序类型使您可以声明一个将作为“动作”执行的功能。它收到一个通用的论据,Model即该操作将针对的论点。

data然后使用导出的另一个实用程序类型键入“ action” 的参数。

type State<Model extends object> = Omit<Model, KeysOfType<Model, Action<any>>>;
Run Code Online (Sandbox Code Playgroud)

State实用型基本上接受了输入Model通用,然后创建一个新的类型,其中所有的类型的属性Action已被删除。

例如,这是上述的基本用户土地实现;

interface MyModel {
  counter: number;
  increment: Action<Model>;
}

const myModel = {
  counter: 0,
  increment: (data) => {
    data.counter; // Exists and typed as `number`
    data.increment; // Does not exist, as stripped off by State utility 
    return data;
  }
}
Run Code Online (Sandbox Code Playgroud)

以上效果很好。

但是,在某些情况下,特别是在定义了通用模型定义以及工厂函数以产生通用模型实例的情况下,我很费劲。

例如;

interface MyModel<T> {
  value: …
Run Code Online (Sandbox Code Playgroud)

generics typescript

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

如何设置 .csproj 的根目录?

我正在尝试在 Visual Studio 中开发最初在 MonoDevelop 中创建和管理的解决方案。

解决方案中的项目与更传统意义上的文件夹结构略有不同。每个项目的源文件都分组在名为“src”的子文件夹中。例如:

MyProject
|   MyProject.csproj
|   ReadMe.txt
|
+---src
    |   Class1.cs
    |   Class2.cs
    |   Class3.cs
    |
    +---Helpers
    |       Helper1.cs
    |
    +---Utils
            Utils1.cs
Run Code Online (Sandbox Code Playgroud)

如您所见,项目文件位于“/MyProject”中,但所有源文件都位于“/MyProject/src”文件夹中。

当我在 Visual Studio 中打开项目时,“src”文件夹作为每个文件路径的一部分包含在内。

这给我带来了问题,因为 Visual Studio 现在在资源文件的命名空间中使用 src 文件夹。

但是,在 Mono 中打开时,“src”文件夹将被忽略,而是作为项目的根文件夹。

我打开了“MyProject.csproj”,它有一个值为“src”的“BaseDirectory”属性。我相信这个属性可能提供 Mono 需要的配置,以便重新定义项目的根文件夹。但这不适用于 Visual Studio。

我根本无法更改目录结构,因为项目的构建系统取决于它。

有谁知道我可以为 Visual Studio 的项目提供根文件夹的自定义定义的方法吗?

c# monodevelop visual-studio

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

Webpack 2 - 使用"供应商"捆绑包是不好的做法?

我有以下类型的配置创建包:

{
  entry: {
    main: 'src/main.js',
    vendor: [ 'lodash', 'react' ]
  },
  plugins: [
    new webpack.optimize.CommonsChunkPlugin({
      name: 'vendor',
      minChunks: Infinity,
    })
  ] 
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我的目的是将我的供应商模块拆分为单独的捆绑包.这按预期工作,但我注意到在这种情况下似乎没有发生树木抖动.当我使用这种供应商方法时,即使我的源不使用它们,整个模块也将包含在供应商包中.

如果我不使用供应商的方法,总捆绑大小要小得多.

这是预期的行为吗?如果是这样,那么如果您希望利用树木摇动,那么使用这种技术会被认为是不好的做法?

webpack

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

NHibernate Criteria按另一个表中的groupid和itemid的总和选择项目

public class SearchText
{
    public virtual int Id { get; set; }
    public virtual string Text { get; set; }
}

public class SearchTextLog
{
    public virtual int Id { get; set; }
    public virtual SearchText SearchText { get; set; }
    public virtual User User { get; set; }
    public virtual int SearchCount { get; set; }
    public virtual DateTime LastSearchDate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我试图根据SearchTextLog中的计数总和选择前5个SearchText项.目前我只能通过首先执行查询来获取前5个项目,然后在第二个查询中使用结果来解决此问题.我想知道是否有人可以向我展示光线,并教我如何将这两个单独的查询整合到一个单元中.

这是我目前的情况:

var topSearchCriteria = Session.CreateCriteria(typeof (SearchTextLog))
            .SetProjection(Projections.ProjectionList()
                            .Add(Projections.GroupProperty("SearchText.Id"))
                            .Add(Projections.Alias(Projections.Sum("SearchCount"), "SearchCount")))
            .AddOrder(Order.Desc("SearchCount"))
            .SetMaxResults(topSearchLimit)
            .List<int>(); …
Run Code Online (Sandbox Code Playgroud)

nhibernate aggregate criteria nhibernate-projections

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

使用webpack的require.ensure函数编写javascript模块的测试

我在我的服务器上运行mocha测试,测试源脚本是一种独立的单元测试方式.

我正在测试的一个脚本调用Webpack的require.ensure函数,这对于在Webpack捆绑时在应用程序中创建代码分割点很有用.

我为此脚本编写的测试不在Webpack上下文中运行,因此该require.ensure函数不存在,并且测试失败.

我试图为这个函数创建一些polyfill/stub/mock/spy但是没有任何运气.

有一个包,webpack-require,它允许创建webpack上下文.这可行,但速度慢得令人无法接受.我希望有一种require.ensure直接针对该功能的轻量级polyfill .

有什么建议?:)


这是一个非常基本的起点摩卡测试.

mocha测试加载一个包含一个方法的人工模块,如果require.ensure定义了该方法则返回true .

foo.js

export default {
  requireEnsureExists: () => {
    return typeof require.ensure === 'function';
  }
};
Run Code Online (Sandbox Code Playgroud)

foo.test.js

import { expect } from 'chai';

describe('When requiring "foo"', () => {
  let foo;

  before(() => {
    foo = require('./foo.js');
  });

  it('The requireEnsureExists() should be true', () => {
    expect(foo.requireEnsureExists()).to.be.true;
  });
});
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing mocha.js node.js webpack

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

Java:在Iterator上强制转换忽略除String类型之外的整数

有人可以向我解释为什么Java忽略除了String类之外的所有对象类型的迭代器的强制转换?

我有以下代码:

List list = new LinkedList();
list.add(new Object());
list.add(new String("First"));
list.add(10);
list.add(2.3);
Run Code Online (Sandbox Code Playgroud)

我有两个案例:

1)

Iterator<Integer> crunchifyIterator = list.iterator();
while (crunchifyIterator.hasNext()) {
    System.out.println((crunchifyIterator.next()));
}
Run Code Online (Sandbox Code Playgroud)

结果是:

java.lang.Object@2a139a55

10个
2.3

2)

Iterator<String> crunchifyIterator = list.iterator();
while (crunchifyIterator.hasNext()) {
    System.out.println((crunchifyIterator.next()));
}
Run Code Online (Sandbox Code Playgroud)

结果是:

线程"main"中的异常java.lang.ClassCastException:java.lang.Object无法强制转换为java.lang.String

我不知道原因是什么.

java string integer iterator classcastexception

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