我正在努力将单元测试集成到我工作的团队的开发过程中,并且有一些怀疑论者.有什么好的方法可以让团队中持怀疑态度的开发人员相信单元测试的价值?在我的具体情况下,我们将添加单元测试,因为我们添加功能或修复了错误.不幸的是,我们的代码库不适合简单的测试.
C:\Windows\Microsoft.NET\Framework64\v4.0.30319>InstallUtil.exe C:\_PRODUKCIJA\D
ebug\DynamicHtmlTool.exe
Microsoft (R) .NET Framework Installation utility Version 4.0.30319.1
Copyright (c) Microsoft Corporation. All rights reserved.
Exception occurred while initializing the installation:
System.BadImageFormatException: Could not load file or assembly 'file:///C:\_PRO
DUKCIJA\Debug\DynamicHtmlTool.exe' or one of its dependencies. An attempt was ma
de to load a program with an incorrect format..
C:\Windows\Microsoft.NET\Framework64\v4.0.30319>
Run Code Online (Sandbox Code Playgroud)
服务是x86编译,即使两台计算机都是x64,它可以在我的计算机上运行.在服务器哪里是win 2008我得到这个错误.
我试试谷歌的解决方案但没有工作.
就像写在这里我有x86项目 http://www.davesquared.net/2008/12/systembadimageformatexception-on-64-bit.html
一些代码样式工具推荐这个,我记得看到一些unix命令行工具警告缺少空行.
有多余空行的原因是什么?
更新:添加2017年; VS2017使用与2015年相同的测试发现/运行器集成机制,因此可能出错的关键事项是相同的.
我已经阅读了为什么xUnit运行器没有找到我的测试,这涵盖了xUnit 永远无法找到你的测试但我的问题不同的原因 - 我相信我的测试没有任何微妙的变化; (他们在其他环境中工作过,这似乎只是我的机器) - Visual Studio 2015中的Visual Studio Test Runner [社区版]根本没有显示我的任何测试.我没有做任何令人兴奋的事情; 测试针对桌面上的xUnit.net v2.
我查看了"输出"窗口,在" 显示"选项卡的"输出"中的" 测试"下看不到任何内容.
我收到以下异常:
混合模式程序集是针对运行时的版本"v2.0.50727"构建的,如果没有其他配置信息,则无法在4.0运行时加载.
因为我试图从我的WPF程序导出水晶报告......
我已经在app.config中添加了以下内容......
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
<runtime>
<NetFx40_LegacySecurityPolicy enabled="true"/>
</runtime>
Run Code Online (Sandbox Code Playgroud)
任何专家都可以帮忙????
参考资料我发现:http: //www.davidmoore.info/2010/12/17/running-net-2-runtime-applications-under-the-net-4-runtime
我有一个预先存在的界面......
public interface ISomeInterface
{
void SomeMethod();
}
Run Code Online (Sandbox Code Playgroud)
并且我使用mixin扩展了这个表面...
public static class SomeInterfaceExtensions
{
public static void AnotherMethod(this ISomeInterface someInterface)
{
// Implementation here
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个叫这个我要测试的课程...
public class Caller
{
private readonly ISomeInterface someInterface;
public Caller(ISomeInterface someInterface)
{
this.someInterface = someInterface;
}
public void Main()
{
someInterface.AnotherMethod();
}
}
Run Code Online (Sandbox Code Playgroud)
和测试,我想模拟界面并验证对扩展方法的调用...
[Test]
public void Main_BasicCall_CallsAnotherMethod()
{
// Arrange
var someInterfaceMock = new Mock<ISomeInterface>();
someInterfaceMock.Setup(x => x.AnotherMethod()).Verifiable();
var caller = new Caller(someInterfaceMock.Object);
// Act
caller.Main();
// Assert
someInterfaceMock.Verify();
}
Run Code Online (Sandbox Code Playgroud)
然而,运行此测试会产生异常......
System.ArgumentException: …Run Code Online (Sandbox Code Playgroud) 使用.NET随机化字符串数组的最佳方法是什么?我的数组包含大约500个字符串,我想Array用随机顺序创建一个具有相同字符串的新字符串.
请在答案中加入C#示例.
我BooleanToVisibilityConverter在WPF中使用a 将Visibility控件的属性绑定到a Boolean.这工作正常,但我想要一个控件隐藏如果布尔是true,并显示它是否false.
我正在查看msdn文档,我仍然对使用LoadFile和LoadFrom加载程序集之间的区别究竟有点困惑.有人可以提供一个例子或类比来更好地描述它.MSDN文档让我更加困惑.此外,它是ReflectionOnlyLoadFrom相同的,LoadFrom只是它只在反射模式下加载程序集.
由于我的.NET经验并不是最好的,因此以下是有关使用LoadFile的MSDN文档的一些问题:
1)LoadFile检查具有相同标识但位于不同路径的程序集是什么意思?身份是什么(例子)?
2)它声明LoadFile不会将文件加载到"LoadFrom上下文"中,并且不会使用加载路径解析依赖关系.这是什么意思,有人可以提供一个例子吗?
3)最后,它声明LoadFile在这种有限的场景中很有用,因为LoadFrom无法加载具有相同身份但路径不同的程序集; 它只会加载第一个这样的组件,这再次带给我同样的问题,组件标识是什么?
目的是Verifiable()什么?
如果我验证Mock并将其保留,它仍会验证SetUp.
编辑:我正在使用VerifyAll()因此验证一切的原因.更改为Verify()只有我的.Verifiable() SetUps被检查.
.net ×5
c# ×3
unit-testing ×3
moq ×2
.net-4.0 ×1
64-bit ×1
ado.net ×1
algorithm ×1
assemblies ×1
binding ×1
coding-style ×1
eof ×1
mocking ×1
random ×1
sorting ×1
visibility ×1
wpf ×1
xunit2 ×1