我想要一个独立的项目来测试通过 USB 连接的远程系统的一些功能。
所以我想在我的应用程序中使用 NUnit 的所有功能。
我目前是这样写的:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using NUnit.Framework;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.ReadLine();
}
}
[TestFixture]
public class MyTest
{
[Test]
public void MyTest()
{
int i = 3;
Assert.AreEqual(3, i);
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何运行我的测试套件以及如何获得测试报告?
我有这个功能和测试:
public void SaveForWeb ()
{
UpdateGameState();
try
{
PlayerPrefs.SetFloat(Helper.EXP_KEY, experience);
PlayerPrefs.SetFloat(Helper.SCORE_KEY, score);
// other properties that need to be saved in PlayerPrefs
PlayerPrefs.Save();
}
catch (Exception ex)
{
Debug.Log(ex.Message);
}
}
[Test]
[Category(Helper.TEST_CATEGORY_SAVE_FOR_WEB)]
public void SaveForWebTest ()
{
// arrange
var slgdController = FakeSaveLoadGameDataController();
TestDelegate myDelegate = () => {};
// act
slgdController.SaveForWeb();
// assert
Assert.DoesNotThrow(myDelegate);
}
Run Code Online (Sandbox Code Playgroud)
但我觉得断言和SaveForWeb()函数调用之间没有联系.
注意:SaveForWeb()使用Unity3D API中的PlayerPrefs,如果本地文件超过1 MB,则可能抛出PlayerPrefsException.
如果函数不抛出异常,这是断言的正确方法吗?
我想知道关于使用属性(如NUnit的Category属性)对测试进行分类的"最佳实践"是什么?
您是按应用程序的功能范围,按类别(单元测试,端到端测试,烟雾测试,集成测试等),按技术类别(长时间运行,Web请求等)或每种类型的混合对它们进行分类?
总而言之,我不想在几个月内对数千个测试进行重新分类,那么最佳策略是什么?
提前感谢您的回答!
我有一个XrmServiceContext类,每次CRM配置更改时它都会更改。
我的服务类在其构造函数中接受它:
public class fooService(XrmServiceContext xrmServiceContext)
{
//implementation
}
Run Code Online (Sandbox Code Playgroud)
我需要模拟XrmServiceContext以便设置期望并验证单元测试的行为。
我如何模拟此类以便在我的fooService测试中定义行为?
我正在使用最终的构建器7动作Nunit与fixture和xml输出选项.当我使用NUnit 2.6.4版本运行时,它运行正常.但我已将版本升级到3.0即nunit3.console
请查看此链接以获取为参考提供的最终构建器选项. https://i.stack.imgur.com/CdYpG.png
我面临以下问题:
我试图执行如下命令:
nunit3.console.exe Test.dll --fixture=example --xml=example.xml
Run Code Online (Sandbox Code Playgroud)
但它对我不起作用.我错过了命令行语法中的任何内容吗?我的目标是为我指定的每个类获取单独的xml文件.请帮我解决这个问题.提前致谢.
在NUnit控制台运行程序中,有一个控制台命令用于列出Visual Studio项目中的所有测试。有人知道吗?
我使用版本3.6.1。
我已经使用nunit在MSVS2013中成功运行我的C#单元测试,使用nunit GUI和nunit控制台.
对于前两个,我可以进入我的调试输出(Console.Write(...)).在MSVS2013中,可以通过在测试后单击"输出"链接查看,在GUI中,调试显示在"输出"窗口中.
当我使用nunit3-console.exe运行时,我只是得到摘要报告.我试着查看XML输出中的内容(在TestResults.xml中),但它只包含更多相同的摘要报告.
如何让我的调试也出现在屏幕上?
我的命令行如下所示:
nunit3-console.exe "c:\path\to\my\assebly.dll" --trace=Verbose --test=Regression.Tests.HelloWorld
Run Code Online (Sandbox Code Playgroud)
测试HelloWorld中有一行Console.Write("Hello World\r\n");,我想看到它出现在屏幕上(标准输出).
我有一个Entity Framework数据库上下文文件.我正在尝试在NUnit中设置Moq框架.目前收到Moq Nunit测试的错误.如何设置DBContext,并将项目添加到产品表?
"没有为此DbContext配置数据库提供程序.可以通过覆盖DbContext.OnConfiguring方法或在应用程序服务提供程序上使用AddDbContext来配置提供程序.如果使用AddDbContext,则还要确保您的DbContext类型接受DbContextOptions对象它的构造函数并将其传递给DbContext的基础构造函数."
Electronics DB上下文文件
public partial class ElectronicsContext : DbContext
{
public ElectronicsContext()
{
}
public ElectronicsContext(DbContextOptions<ElectronicsContext> options)
: base(options)
{
}
public virtual DbSet<Product> Product { get; set; }
public virtual DbSet<ProductCategory> ProductCategory { get; set; }
Run Code Online (Sandbox Code Playgroud)
Startup.cs
var connection = @"Server=localhost;Database=Electronics;Trusted_Connection=True;ConnectRetryCount=0";
services.AddDbContext<ElectronicsContext>(options => options.UseSqlServer(connection));
Run Code Online (Sandbox Code Playgroud)
Moq Nunit测试
[SetUp]
public void Setup()
{
var ElectronicsContext = new Mock<ElectronicsContext>();
var ProductRepository = new Mock<ProductRepository>();
Product producttest = new Product();
_dbContext.Product.Add(new Product {ProductId = 1, ProductName = "TV", ProductDescription = …Run Code Online (Sandbox Code Playgroud) 我有以下Fluent Assertion,我想在if语句中添加.我收到一个错误,说我不能隐式地将类型转换为bool.
我试图明确地转换它但我仍然得到一个错误,说不能将类型转换为bool.
actors.Cast.Should().Contain(actor => actor.Name == "Emilia Clark");
检查上述陈述是否属实的最佳方法是什么?
我是nUnit和Moq进行单元测试的新手,并且在dbprovider中遇到了一个方法的问题.
我正在尝试测试在ICoDbProvider中调用Exists方法的验证方法.如果为false,则该方法会抛出一个excpetion,并且工作正常.如果为true,则该方法应该继续执行,直到return true;方法结束时的语句为止.
这是测试的方法:
private bool ValidateReciboCajaModel(ReciboCajaModel model)
{
if (model == null)
throw new ArgumentException("El modelo ha llegado nulo");
if (string.IsNullOrWhiteSpace(model.AccionARealizar))
throw new ArgumentException("No se ha definido una Acción a realizar");
if (!_accionARealizarService.Exists(new AccionARealizarEntity(model)))
throw new ArgumentException(@"No es una ""acción a realizar"" válida");
if (string.IsNullOrWhiteSpace(model.CentroCostos))
throw new ArgumentException("No se ha definido ningún centro de costos");
if (!_centroCostosService.Exists(new CentroCostosEntity(model)))
throw new Exception("No es un centro de costos válido");
if (String.IsNullOrWhiteSpace(model.CuentaIngresoDinero))
throw new Exception("No es una cuenta de Ingreso …Run Code Online (Sandbox Code Playgroud) nunit ×10
c# ×8
unit-testing ×5
moq ×3
.net ×1
asp.net-core ×1
assertion ×1
command ×1
exception ×1
fixture ×1
nsubstitute ×1
testing ×1