小编Dan*_*ose的帖子

如何检查FakeItEasy是否必须发生对任何过载的调用?

我有一个我正在测试的方法.给定某些输入,它应该向记录器(ILogger)写入失败方法.该接口有几个Log()重载,以及一些属性(例如日志记录级别).我正在使用FakeItEasy嘲笑记录器.

我想断言的是发生了对Log()的调用.但是,我不关心使用了哪个特定的重载.我怎样才能做到这一点?

我的想法:

// Doesn't work, since a different overload (with more parameters) is used.
A.CallTo(() => mockLogger.Log(null)).WithAnyArguments().MustHaveHappened();

// "Works", but if the code were to call something else on the logger
// (ex. change the logging level), this would also pass!
Any.CallTo(mockLogger).MustHaveHappened();
Run Code Online (Sandbox Code Playgroud)

c# unit-testing fakeiteasy

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

单元测试自定义WPF UIElement的呈现

在我的应用程序中,我使用自定义UIElement,它处理自己的布局和渲染.虽然我可以对其中的大部分进行单元测试,但我无法正确地对渲染进行单元测试.原因是渲染是通过OnRender方法完成的,但是我无法测试实际渲染的内容,因为DrawingContext是一个带有内部构造函数的抽象类,所以我无法从中导出它以进行测试.

我知道如何做的唯一测试是尝试不同的场景(基于实现的代码)并检查没有抛出异常.有没有办法测试更多(除了使用TypeMock Isolator或JustMock)?

c# wpf unit-testing

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

通过C#调用Win32 api失败!

我有一个C++函数导出为api像这样:

#define WIN322_API __declspec(dllexport)
WIN322_API char* Test(LPSTR str);
WIN322_API char* Test(LPSTR str)
{
 return "hello";
}
Run Code Online (Sandbox Code Playgroud)

该函数由.DEF文件正确导出为API,因为我可以在Dependency Walker工具中看到它.现在我有一个C#测试程序:

[DllImport("c:\\win322.dll")]

public static extern string Test([MarshalAs(UnmanagedType.LPStr)] String str);

private void Form1_Load(object sender, EventArgs e)
        {
string _str = "0221";
Test(_str); // runtime error here!

}
Run Code Online (Sandbox Code Playgroud)

在调用Test()方法时我得到错误:

"调用PInvoke函数'MyClient!MyClient.Form1 :: Test'使堆栈失衡.这很可能是因为托管PInvoke签名与非托管目标签名不匹配.请检查PInvoke签名的调用约定和参数是否与目标非托管签名."

我尝试了很多其他数据类型和编组,但什么也没得到!请帮助我!

c# c++ pinvoke winapi

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

UML,C++,Java中的符号

在Java中,我们有一些修饰符:protected,public,private.在UML中,它们是#,+,-,分别.

我的问题是,~符号在UML中意味着什么?它在Java,C++中有什么意义吗?

c++ java uml protected public

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

如何测试lambda表达式的查询结果是否为空?

var query = from emp in dbEmp.Employees
            join dept in dbEmp.Departments on emp.DeptID equals dept.DeptID
            where dept.DepartmentName.Contains(this.TextBox1.Text)
            select new
            {
                EmpID = emp.EmpID,
                EmpName = emp.EmpName,
                Age = emp.Age,
                Address = emp.Address,
                DeptName = dept.DepartmentName
            };

if (query == null)
    Label1.Text = "no results match your search";

GridView1.DataSource = query;
GridView1.DataBind();
Run Code Online (Sandbox Code Playgroud)

一切都以正确的方式工作,但标签在查询结果返回null时不显示消息.标签可以无条件显示(query == null).那么如何测试var查询结果是否返回任何内容?谢谢

.net c# linq

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

Eclipse ::制作Apple应用程序

可以使用Eclipse制作Apple应用吗?

如果没有,我如何为App-Store制作iOS应用程序?

eclipse macos app-store

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

标签 统计

c# ×4

c++ ×2

unit-testing ×2

.net ×1

app-store ×1

eclipse ×1

fakeiteasy ×1

java ×1

linq ×1

macos ×1

pinvoke ×1

protected ×1

public ×1

uml ×1

winapi ×1

wpf ×1