Tag: nunit

用Mock测试Nunit。 接口实例

我有以下(简化)代码。 public class Controller { private readonly IService _service; public Controller(IService service) { _service = service; } public async Task Create(MyObject object) { var result = _service.method(object); if (!result.Succeeded) { return this.GetErrorResult(object); } } } 和SimpleInjector用于注入_service和它的实现类之间的依赖关系,如下所示: public static void Register(Container container) { container.Register(); } 作为一个注释,注射和unit testing对我来说是新的,所以我不完全理解它们,但我正在学习。 如果我通过Swagger运行应用程序,一切正常。 注意,当我通过Swagger运行应用程序时,会调用Register函数。 现在,我正在尝试使用NUnit设置一些unit testing,并且像这样模拟IService对象: var Service = new Mock(); […]

不能在RazorEngine中使用MvcHtmlString / IHtmlString

我刚刚开始使用RazorEngine并且在使用静态辅助方法时遇到了绊脚石。 它只为模板生成一个MvcHtmlString / IHtmlString。 当我调用Razor.Parse(…)时 RazorEngine.Templating.TemplateCompilationException : Unable to compile template. Der Typ ‘System.Web.IHtmlString’ ist in einer nicht referenzierten Assembly definiert. (not referenced) Fügen Sie einen Verweis auf die Assembly ‘System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a’ hinzu. 我添加了对System.Web , System.Web.Mvc , System.Web.WebPages引用。 还尝试将它们添加到cshtml ( @using System.Web , @using System.Web.Mvc )。 但@using System.Web.Mvc导致.Mvc在System.Web不可用? 我正在尝试在NUnit Tests中构建模板。

是否有很好的unit testing完整性

我有一个课我需要unit testing。 对于我正在开发c#并使用NUnit的背景,但我的问题更具理论性: 我不知道我是否已经编写了足够的测试方法,如果我检查了所有方案。 是否有已知的工作方法/最佳实践/规则集合? 就像是 “检查你class上的每一种方法…… bla bla” “检查DB的所有插入… bla bla” (这是可能的规则的一个愚蠢的例子,但如果我有一些不傻的东西,我不会问这个问题)

如何在无头unit testing中运行时使WebBrowser完成导航?

我们有一个WPF应用程序,它在控件中加载一些内容,然后根据加载的内容进行一些调用。 使用正确的模拟,我们认为我们可以在无显示unit testing(在这种情况下为NUnit)内测试。 但是WebBrowser控件不想玩得很好。 问题是我们从未收到LoadCompleted或Navigated事件。 显然这是因为在实际呈现之前,网页永远不会“加载” (请参阅此MSDN线程) 。 我们确实收到了Navigating活动,但这对我们来说太早了。 那么有没有办法使WebBrowser控件“完全”工作,即使它没有输出显示? 以下是测试用例的简化版本: [TestFixture, RequiresSTA] class TestIsoView { [Test] public void PageLoadsAtAll() { Console.WriteLine(“I’m a lumberjack and I’m OK”); WebBrowser wb = new WebBrowser(); // An AutoResetEvent allows us to synchronously wait for an event to occur. AutoResetEvent autoResetEvent = new AutoResetEvent(false); //wb.LoadCompleted += delegate // LoadCompleted […]

Visual Studio 2013中的OpenCover测试工具用法

我正在尝试将OpenCover用于使用C#编写的计算器应用程序。 我在Visual Studio 2013中打开它,并使用包管理器控制台安装了OpenCover和Report Generation包。 我无法理解继续的其他命令。 具体来说, -target是什么意思? 我无法理解继续下去的一步。

更改NUnit测试的名称

我希望我的基于NUnit框架的unit testing在Visual Studio测试资源管理器中更具人性化。 例如,我最好不要使用Test_Case_1或TestCase1而是选择Test Case #1, Category: First, Category: Second (通过分配[Category]属性中的值),方法名称中不允许使用空格和字符。 我知道它在xUnit中是开箱即用的,但我不能参与其中,因为我使用的是我无法使用xUnit框架实现的自定义。 是否可以使用NUnit重写unit testing显示名称? 到目前为止,我可以看到, TestDetail FullName字段有私有的setter。 是否有其他方法或方法更改NUnit测试的显示名称?

NUnit:如何在C#中使用“ref”参数测试私有方法

我有一个私有方法,如下所示: int void SomeMethod(ref string theStr) { // Some Implementation } 如何为这种方法编写unit testing用例。

NUnitunit testing具有“ExpectedException”但仍然在exception时失败

我有一个unit testing失败,因为抛出了System.ArgumentException ,即使我期待它并且它是故意的行为 – 我错过了什么? [Test] [ExpectedException(typeof(ArgumentException), ExpectedMessage = “Seconds from midnight cannot be more than 86400 in 010100712386401000000012”)] public void TestParsingCustomReferenceWithInValidSecondsFromMidnight() { // I am expecting this method to throw an ArgumentException: CustomReference.Parse(“010100712386401000000012”); } 我也试过没有设置ExpectedMessage – 没有区别。

如果代码是为x86或任何CPU编译的,我的代码如何在运行时检测到

我有很多集成测试,可以读取文件的预期结果。 我的测试通过相对路径访问这些文件。 相对路径是x86与任何CPU的不同深度级别。 例如,当我的测试在x86下运行时,他们需要读取以下文件“../../TestResults/MyTest.csv”,但在任何CPU下他们需要访问“../TestResults/MyTest.csv” 到目前为止,我在每个测试夹具中都有以下常量: private const string platformDependentPrefix = “”; 如果我运行x86的测试,我需要在每个测试夹具中手动将“”更改为“../”。 有没有办法实现自动化?

带有参数化unit testing的.NET测试框架,每个组合显示红色/绿色?

当您具有Xunit testing* Y配置时, 参数化unit testing非常有用。 我有3个unit testing,每个必须在5种特定情况下运行。 我使用xUnit.net的Theory / PropertyData function ,效果很好。 问题:在Test Runner UI中,每个unit testing有一个绿色/红色符号,表示3 。 这使得评估进度变得困难:符号为红色,直到所有配置完美运行。 我想要15个符号,每个unit testing*配置一个,以了解哪个特定组合出错了。 xunit.net 尚未实现该function以显示15个符号。 我愿意切换到另一个测试框架只是为了获得这个function。 问题:任何.NET测试框架都有此function吗? 任何类型的报告都很好(GUI,HTML等)