小编Jec*_*eco的帖子

TypeMock VS JustMock(VS RhinoMock,Moq ......):2011年的现状?

我几周前开始使用TDD.我必须对一个充满非虚方法的C#代码进行单元测试,并且没有太多的接口.因此,在我研究RhinoMock和Moq之后,代理解决方案还不够:感谢分析器,我需要的是隔离.

从我读到的,我有3个选择:

  1. TypeMock隔离器,非常强大但也非常昂贵
    http://www.typemock.com/
  2. JustMock of Telerik,TypeMock的替代品,旨在成为TypeMock,但测试版充满了bug
    http://www.telerik.com/products/mocking.aspx
  3. 来自Microsoft Pex的Moles,唯一可用于隔离的免费解决方案,但绝对不是模拟框架,请参见此处

我需要轻松配置的模拟.Moles不提供高级声明性验证功能,而且我自己也很难.

TypeMock是一个很好的解决方案,但对于我真正需要的东西肯定有点多,我发现价格太高了.

JustMock应该同意,但我没有找到很多引用.这是一个耻辱,它的语法接近于Moq,它应该是一个很好的过渡(我可以切换到带有更清晰代码的免费版本,这要归功于例如依赖注入).但TypeMock是在2006年推出的,而Justmock在2010年仍处于测试阶段,但存在明显的差距(尽管Telerik有很好的分数).Q2修复漏洞于2010年7月发布.

问题: JustMock的最新版本是否足够有效?他们是一些满意的用户?

(不错的免费引用仅适用于接口/委托/非虚方法:)
看到http://www.ayende.com/projects/rhino-mocks.aspx
看到http://code.google.com/p/moq/
http://www.nmock.org/

moq typemock mocking justmock

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

如何使用Moles作为构造函数?

我有一个这样的课:

public class Product : IProduct
{
    static private string _defaultName = "default";
    private string _name;
    private float _price;
    /// Constructor
    public Product()
    {
        _price = 10.0F;
    }
    public void ModifyPrice(float modifier)
    {
        _price = _price * modifier;
    }  
Run Code Online (Sandbox Code Playgroud)

我希望ModifyPrice不为特定值做任何事情,但我也想调用将价格设置为10的构造函数.我尝试过这样的事情:

var fake = new SProduct() { CallBase = true };
var mole = new MProduct(fake)
    {
        ModifyPriceSingle = (actual) =>
        {
            if (actual != 20.0f)
            {
                MolesContext.ExecuteWithoutMoles(() => fake.ModifyPrice(actual));
            }
        }
    };
MProduct.Constructor = (@this) => (@this) = …
Run Code Online (Sandbox Code Playgroud)

.net c# unit-testing mocking moles

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

标签 统计

mocking ×2

.net ×1

c# ×1

justmock ×1

moles ×1

moq ×1

typemock ×1

unit-testing ×1