小编Sim*_* V.的帖子

异步方法返回null

如果我尝试模拟包含如下async方法的类型:

interface Foo
{
    Task<int> Bar();
}
Run Code Online (Sandbox Code Playgroud)

然后mock的Bar方法返回null.我猜Moq正在选择default(Task<int>)我的方法的默认返回值,这确实是null.然而,Moq应该选择像Task.FromResult(default(int))默认值这样的东西.我可以强制Moq使异步方法返回非空任务吗?

c# moq mocking async-await

19
推荐指数
2
解决办法
9201
查看次数

确定方法是否使用反射覆盖另一个方法?

这可能吗?

我发现的唯一解决方案通常将方法视为重写,如果Class B可以分配,Class A并且if Method A具有相同的签名Method B.但它并不涵盖所有情况!

例如,我想处理这种情况:

interface Foo<T> {
    void doStuff(T arg);    
}

class FooImpl implements Foo<String> {
    public void doStuff(String args) {
        //Is overriden!  
    }
}
Run Code Online (Sandbox Code Playgroud)

我还想检查Method B实际可见的Method A(包范围等).

您是否曾经历过一种可靠的方法来确定方法是否被覆盖?

谢谢

java reflection

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

在IntelliJ Idea中编辑并继续?

使用IntelliJ Idea Community Edition进行调试时是否可以编辑一些代码?我在选项中找不到此功能.

java debugging intellij-idea

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

在这个简单的情况下,如何让我的单元测试彼此独立?

我正在使用测试驱动开发方法在C#中编写一个小游戏.我遇到了一个问题:

我有一节课CheckersBoard:

public class CheckersBoard
{
    private const string InitialBoardPattern = "B-B-B-B-" +
                                               "-B-B-B-B" +
                                               "B-B-B-B-" +
                                               "--------" +
                                               "--------" +
                                               "-W-W-W-W" +
                                               "W-W-W-W-" +
                                               "-W-W-W-W";

    public SquareStatus[,] Squares { get; private set; }

    public CheckersBoard(IBoardGenerator boardGenerator)
    {
        Squares = boardGenerator.GenerateFromPattern(InitialBoardPattern, 8, 8);
    }

    //....
}
Run Code Online (Sandbox Code Playgroud)

一节课BoardGenerator:

public class BoardGenerator : IBoardGenerator
{

    public SquareStatus[,] GenerateFromPattern(string pattern, int width, int height)
    {
        //....
    }

}
Run Code Online (Sandbox Code Playgroud)

BoardGenerator允许我以CheckersBoard一种非常易读的方式初始化.所以,我真的想BoardGenerator在我的单元测试中使用,以避免难看的数组初始化.

但这违反了规则,即我必须保持所有单元测试彼此独立.如果测试GenerateFromPattern失败,那将产生"级联"效果,并且所有使用的测试也GenerateFromPattern将失败. …

c# tdd unit-testing

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

为什么Hibernate会生成这个SQL查询?

我正在使用Hibernate和MySql服务器.我使用多个数据库作为"命名空间"(例如users,transactions,logging等).

所以,我将Hibernate配置为NOT不连接到特定的数据库:

url = jdbc:mysql://127.0.0.1/

表所在的数据库通过以下catalog属性在hbm文件中定义:

<class name="com.myApp.entities.User" table="user" schema="" catalog="users"> ...
Run Code Online (Sandbox Code Playgroud)

当我想加载一些数据时,一切正常,Hibernate似乎生成了预期的SQL查询(通过在表名中使用目录前缀),例如:

select id from users.user
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试添加新记录时,Hibernate不再使用该from [catalog].[table_name]语法.所以我得到MySQL错误'没有选择数据库'.

select max(id) from user
Run Code Online (Sandbox Code Playgroud)

Hibernate正在尝试获取未来的id来创建一个新记录,但它没有指定在哪个数据库中找到该表,它应该是:

select max(id) from users.user
Run Code Online (Sandbox Code Playgroud)

为什么Hibernate生成这个无效的查询?有人遇到过这个问题吗?

java mysql hibernate

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

我应该保留设计模式术语吗?

当我实现设计模式时,我应该保留"策略","访问者","外观"等术语,还是可以将这些名称与我的应用程序的上下文相匹配?什么是最佳做法?

oop design-patterns

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

List.map每次都会分配一个新的List吗?

让我们考虑以下列表:

// 2 2 2 1 1 1
let xs = [2;2;2;1;1;1]

// 2 2 2 1 1 1
let xs' = List.map (fun x -> x) list

// 4 4 4 1 1 1
let xs'' = List.map (fun x -> x * x) list
Run Code Online (Sandbox Code Playgroud)

List.map在第二种情况下分配一个新列表吗?在第三种情况下,将xs分享尾巴[1;1;1]xs''

f#

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