问题标签 [typemock]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
540 浏览

mocking - 使用 typemock 交换参数

我正在编写一些单元测试并想知道,Typemock 有责任替换参数吗?

例如,我有一个依赖于对象的方法,并且在该对象的构造函数中有一些要分析的程序集(字符串数组)。

我会在正确的轨道上模拟包含该方法的类,然后传入我自己的参数吗?但这本身就有它自己的开销。交换正在测试的实际类的参数不是更好吗?这可能吗?

最后,我似乎已经意识到,如果我想要易于测试的代码,而不是想要模拟的方法级变量,它们应该是字段,因此可以从外部访问。构造函数集变量应分配给作为字段的引用。你同意吗?

我知道这可能是一个愚蠢的问题,但我没有使用太多嘲笑。

谢谢

0 投票
1 回答
1134 浏览

.net - JustMock vs. TypeMock vs. 其他

Telerik 新推出的 JustMock 产品与 TypeMock 有很多相似之处,都可以模拟具体类,而不仅仅是抽象类或接口。我只是好奇您对其中一种或两种产品的看法。你喜欢或不喜欢什么?

似乎 JustMock 可能对某些功能感到害羞(TypeMock 已经存在了一段时间),但它有一些很好的功能。或者,如果您有任何其他您认为功能相似的人。

0 投票
2 回答
438 浏览

autofac - 在方法上设置行为似乎是在调用该方法

我在 TypeMock 论坛上发布了这个,但我迫不及待地等待那里的回复。这是一个非常n00b的问题。

我正在尝试设置一个假的 IContainer。这是我所拥有的:

IProgram是我代码中的一个接口)。

当我尝试运行此代码时,我收到 Autofac 异常:“请求的服务 MyApp.IProgram 尚未注册。”

怎么会抛出这个异常呢?我实际上并没有调用 container.Resolve(),对吗?我只是将它设置为返回一个假的 IProgram。

不相关的背景信息:我正在试用 TypeMock,因为 Autofac 广泛使用扩展方法,而 Moq 不会模拟它们。

0 投票
2 回答
690 浏览

c# - 如何嘲笑一切?

我了解如何模拟接口或虚拟方法调用。但是像 TypeMock 这样的框架可以模拟框架中的所有内容。哪些 .NET 机制用于提供此类功能?

0 投票
2 回答
1515 浏览

nunit - 让 TeamCity 运行 NUnit 测试,同时集成 NCover 和 TypeMock?

基本上我想使用 TeamCity 的 NUnit 插件(程序,不一定是使用它的特定构建步骤)来运行我的单元测试,使用 NCover 进行代码覆盖,并且由于我的单元测试使用 TypeMock 6,我也需要它在职的。

到目前为止,我已经尝试过:

  • 只是基本上将 TeamCity NUnit 构建步骤指向我的 dll,但失败并显示以下错误消息:

    Typemock Isolator 需要与 Coverage Tool 链接才能运行,以启用以下操作之一:

    1. 通过 Typemock 隔离器配置链接 Coverage 工具
    2. 通过 TMockRunner.exe -link 运行测试
    3. 使用带有链接的 MSBuild 或 NAnt 的 TypeMockStart 任务
  • 试图找出正确的命令行,我试过这个:

    C:...\Isolator\6.0\TMockRunner.exe "C:\TeamCity...\JetBrains.BuildServer.NUnitLauncher.exe" v4.0 MSIL NUnit-2.5.9 MyAssembly.dll

    这失败并出现完全相同的错误。

  • 设置在 TypeMock 的文件部分中找到的环境变量mocking_on.bat,这不会改变结果。

请注意,上面的示例不包含对 NCover 的任何引用(还),这是因为我已经在命令行上使用上面的示例进行了几个小时的修改,但仍然没有运行基本的单元测试。NCover 是 TeamCity 的 nunit-launcher 的额外选项,所以我希望这就像在我做到这一点时启用它一样简单。

0 投票
5 回答
6399 浏览

.net - Typemock Isolator 的开源/免费替代品

Typemock Isolator .NET是否有任何 F/OSS 替代品?

0 投票
2 回答
632 浏览

c# - 如何使用 TypeMock 隔离器伪造数据上下文方法

我想测试一个使用 Linq to SQL 的类。我已经用 TypeMock Isolator 伪造了 datacontext,但是 datacontext 还有一个我不知道如何伪造的功能。此函数用于 Linq to Sql 查询。

该函数传递两个参数(int?a,string b),并返回一个整数;DC.MyMethod(int?a, 字符串 b)

我如何伪造这个?

希望任何人都可以提供帮助

0 投票
3 回答
4661 浏览

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

我几周前就开始了 TDD。我必须对充满非虚拟方法的 C# 代码进行单元测试,并且也没有太多接口。因此,在我研究了 RhinoMock 和 Moq 之后,代理解决方案是不够的:我需要的是隔离,这要归功于分析器。

根据我的阅读,我有 3 个选择:

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

我需要易于配置的模拟。Moles 不提供高级的声明式验证功能,自己做这件事很痛苦。

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

JustMock 应该得到一些同意,但我没有找到很多参考资料。很遗憾,它的语法接近Moq,它应该是一个很好的过渡(我可以切换到具有更简洁代码的免费版本,例如,由于依赖注入)。但 TypeMock 于 2006 年推出,而 Justmock 在 2010 年仍处于测试阶段,存在明显的差距(尽管 Telerik 有很好的成绩)。第二季度修复错误于 2010 年 7 月发布。

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

(仅适用于接口/委托/非虚拟方法的良好免费参考:)
http://www.ayende.com/projects/rhino-mocks.aspx
http://code.google.com/p/moq/
http://www.nmock.org/

0 投票
1 回答
286 浏览

unit-testing - 运行具有操作的单元测试可能会破坏新标准内核的运行时异常

在我们的单元测试中,它首先从单例类加载 db 设置,我们有:

它在我们的 mvc 应用程序中运行良好,但是,当它被单元测试调用时抛出异常。

0 投票
2 回答
1805 浏览

c# - 覆盖先前设置的 Typemock Isolator 函数行为 (WillThrow()/DoInstead())

请查看此代码:

这段代码的实际作用是为UserRepository的所有公共成员抛出 NotSupportedException 。

想要这段代码做的是让UserRepository的所有公共成员抛出NotSupportedException除了SelectOne()函数,它返回null

我想确保RegistrationServices的ActivateUser()函数不调用UserRepository的任何函数,而不是我明确指定的SelectOne()函数。

如果确实如此,例如通过更改ActivateUser()的实现来调用UserRepositorySave()并且不更改相应的 *ActivateUser_UserNotFound_ThrowsException* 测试,我希望测试失败,因为更改可能会引入意外行为。通过这种方式,我可以将我的应用程序与第三方完全隔离,并将编码错误减少到最低限度。

我对此代码及其背后的原则的问题是:

  1. 我怎样才能实现所需的行为?
  2. 我可以探索任何替代方案来实现所需的行为吗?
  3. 期望行为的基本原则是否有效?即我是否应该将整个应用程序与第三方隔离以进行测试,在调用未预料到的函数时引发异常,并且仅在明确指定时才返回有效数据?