问题标签 [vs-unit-testing-framework]

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 回答
1134 浏览

c# - 通过 Moq 设置匹配参考类型参数

我遇到了与此处此处提出的问题类似的问题,但解决方案似乎不适用于我的情况。

考虑以下类:

以下代码用于测试(calls列表仅用于调试):

上述测试失败,但有以下异常:

我确定 ProductsWebService.GetClassLevel 被调用而getClassLevelLang.Equals没有被调用(用调试器检查)。更奇怪的是,我calls在调用VerifyAll()list 之前检查了它的实际值,它是空的。

0 投票
2 回答
658 浏览

.net - 如何将类别属性分配给有序测试?

我有一类单元测试方法(“序列化”)都标有 ,CategoryAttribute以便我可以按“特征”对 VS-2012 中的测试资源管理器窗格进行排序,如下所示:

测试资源管理器窗格

我已经在我的解决方案中的单元测试项目中添加了一个有序测试(称为serialization.orderedtest),并分配了所有这些单元测试方法以按特定顺序运行。

我的问题:如何将我的“序列化”类别分配给这个有序的测试对象,以便在这个视图中与其他对象一起组织?

** 编辑 **

有人建议Properties在 VS-2012 测试资源管理器中的测试项目的右键单击上下文菜单中可能有一个选项。唉,没有...

在此处输入图像描述

0 投票
2 回答
10619 浏览

c# - 自定义消息和默认消息

有没有办法指定一条消息Assert.AreEqual(object, object, string),将自定义消息与默认消息相结合?

我有以下代码:

除了来自下面的 VS 单元测试框架的示例消息之外,我还想指定测试用例键:

Assert.AreEqual failed. Expected:<True>. Actual:<False>.

也许像Failed on the following test case: AB.

0 投票
4 回答
4168 浏览

asp.net-mvc - ASP.NET MVC 的单元测试框架?

有人会推荐我一个 MVC 的单元测试框架吗?有很多选择让我困惑选择哪个框架。

NUnit 或 XUnit.Net 或 MSTest ??

谢谢,文卡特

0 投票
1 回答
5574 浏览

c# - TestInitialize 和 TestCleanup 在 DataTestMethod 的每个 DataRow 之前和之后没有运行

您可以在下面看到一些在 Window Phone 单元测试应用程序中使用 Mstest 编写的代码。
我有一个名为 TestMethod1 的普通 TestMethod和一个名为TestMethod2的 DataTestMethod ,它具有三个 DataRows:

如果我在调试模式下运行测试(Visual Studio 中的 Ctrl+R、Ctrl+T),我会在输出面板中看到:

TestInitialize
TestMethod1
TestCleanup
TestInitialize
TestMethod2 param=c
TestMethod2 param=a
TestMethod2 param=b
TestCleanup

如您所见,TestInitialize 只执行了两次:一次在 TestMethod1 之前,一次在 TestMethod2 之前,参数为 c。
TestCleanup 也是如此,它在 TestMethod1 之后执行一次,在最后执行一次。

我希望在每次测试之前和之后执行 TestInitialize 和 TestCleanup,无论它是 TestMethod 还是 DataTestMethod。否则,一个测试的执行会影响下一个测试。

我希望它是这样的:

TestInitialize
TestMethod1
TestCleanup
TestInitialize
TestMethod2 param=c
TestCleanup
TestInitialize
TestMethod2 param=a
TestCleanup
TestInitialize
TestMethod2 param=b
TestCleanup

我没有发现其他人有同样的问题,我做错了什么?

0 投票
3 回答
775 浏览

c# - 我应该使我的自定义单元测试断言类非静态吗?

我使用内置的 Visual Studio 单元测试工具对 CRM 2011 执行单元测试。很多测试都在断言创建实体。

(GetFirstOrDefault 是一个扩展方法,它尝试通过 id 从 CRM 中检索联系人,如果没有找到则返回 null)

我想创建自己的 Assert 方法,该方法的运行方式如下:

起初我认为继承 from 是个好主意Assert,但可惜它是一个静态类。然后我创建了一个新的静态类,如下所示:

像这样调用:

这很好,除了我真的应该能够设置服务一次,而不必每次都调用它:

但我相信 Visual Studio 会尝试多线程运行测试,这意味着当我设置Service静态属性时,它可能会被不同测试中的不同服务覆盖(并且IOrganizationService不是线程安全的)。

我是否需要使我的 AssertCrm 类为非静态类,这样我就不必担心多线程?有没有我错过的更简单的技术?

0 投票
2 回答
1994 浏览

c# - 如果断言失败,自定义断言类应该做什么?

我为单元测试创​​建了一个自定义 Assert 类,当我想通知测试失败时我不确定该怎么做:

我反映了这个Microsoft.VisualStudio.TestTools.UnitTesting.Assert类,并注意到它调用了 HandleFail:

但这是一种内部方法。我可以使用反射来调用它,或者抛出 AssertFailedException 可能更有意义?我还有其他选择吗?

0 投票
0 回答
777 浏览

c# - visual studio 2012 build 使用 unittest 框架工作 10.0->失败

我们正在使用具有 VS 2012 的 TFS 构建服务器,并且团队项目具有单元测试。以前我们有 2010 年,一切都很好。我们重新安装了服务器,现在我们使用的是 VS2012。当单元测试在构建中开始时(根据 buildlog)MSTest.exe 在 Visual Studio 10 文件夹下执行。单元测试无法启动 - 日志中没有错误,但它只是挂起。

如果我手动运行命令(来自日志文件的片段)并用 Visual Studio 11 替换文件夹,则会执行单元测试。

为什么 VS 2012 使用 10 版本的 mstest?使用的所有其他 VS 可执行文件都是 11 版本?'Where mstest.exe' 表示它在同一服务器中的 11 个文件夹下。

为什么有 Visual Studio 10 文件夹 - 我们还没有在这个服务器上安装版本 10?

在单元测试项目中,引用了正确的单元测试框架(在 VS 11 文件夹下)-但根据属性,它们似乎也具有 10.0.0 版本。

构建服务器日志有:


找不到来自源 VSTTExecution 的事件 ID 0 的描述。引发此事件的组件未安装在本地计算机上,或者安装已损坏。您可以在本地计算机上安装或修复组件。

如果事件起源于另一台计算机,则显示信息必须与事件一起保存。

活动中包含以下信息:

在 Microsoft.VisualStudio.TestTools.Common.DiaHelper.GetSymbolsFileName(字符串 imagePath)

消息资源存在,但在字符串/消息表中找不到消息


(

--- 内部异常堆栈跟踪结束 ---


0 投票
1 回答
271 浏览

asp.net-mvc - 方法的综合单元测试

我有一个控制器方法 -CurrentValues

我想通过使用 MS-VS-Unit 测试套件和如果需要 Moq 对这个控制器进行全面的单元测试。

此方法的核心是从 - 检索到的值GetValues(page)

  1. 我可以编写哪些测试来对此方法进行全面的单元测试?示例代码将与测试场景一起提供帮助。
  2. 如何使用 Moq 模拟 ValueRetrieverViewModel?我应该或我可以将起订量用于这里的任何其他目的吗?
0 投票
2 回答
3754 浏览

visual-studio-2012 - Visual Studio 2012 - 调用目标引发了异常。

Visual Studio 2012 中的简单项目在尝试加载测试资源管理器时导致以下错误:

这是我的测试项目:

测试资源管理器由于某种原因没有发现我的测试。它可能归结为我的问题顶部提出的异常。有谁知道这是否是 Visual Studio 2012 中的一个错误。不明白为什么这么简单的东西会炸毁它?!?