我刚接触.NET Framework上的测试工具,所以我在ReSharper的帮助下从NuGet下载了它.
我正在使用此快速入门来学习如何使用nUnit.我刚刚复制了代码,这个属性出现错误:
[ExpectedException(typeof(InsufficientFundsException))] //it is user defined Exception
Run Code Online (Sandbox Code Playgroud)
错误是:
找不到类型或命名空间名称'ExpectedException'(您是否缺少using指令或程序集引用?)
为什么?如果我需要这样的功能,我应该用它替换它?
我正在尝试对我的代码进行单元测试,其中包括以下行:
UserLoginInfo userIdentity = UserManager.GetLogins(User.Identity.GetUserId()).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
因为我无法得到,我只是被困在一点上:
User.Identity.GetUserId()
Run Code Online (Sandbox Code Playgroud)
返回一个值.我一直在设置控制器时尝试以下操作:
var mock = new Mock<ControllerContext>();
mock.Setup(p => p.HttpContext.User.Identity.GetUserId()).Returns("string");
Run Code Online (Sandbox Code Playgroud)
但是它给出了"NotSupportedException未被用户代码处理"的错误.我也尝试过以下方法:
ControllerContext controllerContext = new ControllerContext();
string username = "username";
string userid = Guid.NewGuid().ToString("N"); //could be a constant
List<Claim> claims = new List<Claim>{
new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name", username),
new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", userid)
};
var genericIdentity = new GenericIdentity("Andrew");
genericIdentity.AddClaims(claims);
var genericPrincipal = new GenericPrincipal(genericIdentity, new string[] { });
controllerContext.HttpContext.User = genericPrincipal;
Run Code Online (Sandbox Code Playgroud)
基于我在stackoverflow上找到的一些代码,但这会返回相同的错误"NotSupportedException未被用户代码处理".
任何有关我如何进行的帮助将不胜感激.谢谢.
我正在尝试使用Dapper连接到现有的数据库格式,该格式具有在BIGINT列中编码为刻度的持续时间的表.TimeSpan在插入和读取数据库时,如何告诉Dapper将我的POCO的-typed属性映射到滴答?
我试着设置类型映射TimeSpan到DbType.Int64:
SqlMapper.AddTypeMap(typeof(TimeSpan), DbType.Int64);
Run Code Online (Sandbox Code Playgroud)
我也创建了一个ITypeHandler,但SetValue从未调用过该方法:
public class TimeSpanToTicksHandler : SqlMapper.TypeHandler<TimeSpan>
{
public override TimeSpan Parse(object value)
{
return new TimeSpan((long)value);
}
public override void SetValue(IDbDataParameter parameter, TimeSpan value)
{
parameter.Value = value.Ticks;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的POCO:
public class Task
{
public TimeSpan Duration { get; set; }
// etc.
}
Run Code Online (Sandbox Code Playgroud)
执行这样的简单插入语句时:
string sql = "INSERT INTO Tasks (Duration) values (@Duration);";
Run Code Online (Sandbox Code Playgroud)
并将POCO作为要插入的对象传递:
Task task = new Task { Duration = TimeSpan.FromSeconds(20) }; …Run Code Online (Sandbox Code Playgroud) 使用属性路由时,是否可以在Swagger UI/Swashbuckle中利用MultipleApiVersions?
具体来说,我实现了版本控制:
using System.Web.Http;
namespace RESTServices.Controllers.v1
{
[Route("api/v1/Test")]
public class TestV1Controller : ApiController
{ ... }
Run Code Online (Sandbox Code Playgroud)
版本2将位于v2名称空间中.在名为TestV2Controller的控制器中.路线中有v2.
是否可以传递一个lambda,这将允许这个?我在网上发现了一个编译的lambda样本,但随后Swagger完全停止了工作.无法在浏览器中点击断点或看到Swagger.
我是NUnit的新手,并且与SpecFlow测试框架和NUnit测试框架相混淆.
现有项目使用NUnit,如下所示.具有[Test]属性的所有方法都显示在NUnit GUI中(如果从方法中删除[Test],则测试用例不会显示在NUnit GUI中):
[TestFixture]
public class AccountTest
{
[Test]
public void TransferFunds()
{
Account source = new Account();
source.Deposit(200m);
}
[Test]
public void TransferWithInsufficientFunds()
{
}
}
Run Code Online (Sandbox Code Playgroud)
当我在同一个项目中使用SpecFlow进行编码时,SpecFlow框架是不同的,从[Given],[When],[Then]开始.每个SpecFlow场景都显示在Nunit GUI上.
我正在做的是用一个SpecFlow方法替换每个[Test]方法.例如:
[Test]
public void TransferFunds()
{
Account source = new Account();
source.Deposit(200m);
}
Run Code Online (Sandbox Code Playgroud)
转向
[Then(@"I Transfer Funds")]
public void ITransferFunds()
{
Account source = new Account();
source.Deposit(200m);
}
Run Code Online (Sandbox Code Playgroud)
这是我的问题:
看起来SpecFlow无法识别NUnit属性[Test]或[Setup].要使用SpecFlow完成项目,我是否需要摆脱所有NUnit框架并替换为SpecFlow的框架?
我可以看到有很多文章在讨论"SpecFlow + NUnit",但它们要么是SpecFlow [Given],[When],[Then]还是NUnit [Test],[TestCase].如何在一个项目中工作或者我对NUnit的理解是完全错误的?
我的问题可能是非常入门级的,谢谢你的答案!
我想签出并签入一个文件.我尝试了下面的命令,但它不起作用:
svn checkout <url_of_big_dir> <target> --depth empty
Run Code Online (Sandbox Code Playgroud)
当我尝试下面的命令它工作.
svn export <url_of_big_dir> <target>
Run Code Online (Sandbox Code Playgroud)
但是我在一些文档中读到,当您要求更新文件时,使用Export是不合适的.
如何更新单个文件?
我的问题是,对于父对象和子对象是否有可能的Fluent NHibernate映射,它不需要Child对象具有Parent对象属性?我还没弄明白如何将引用映射回Parent.当我使用映射调用Create时,我得到一个异常,因为Child对象没有所需的外键(在数据存储中需要)回到Parent.
我有两个POCO课程:
public class Parent
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual IList<Child> Childs { get; set; }
}
public class Child
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual int ParentId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
还有一些映射:
public class ParentMap : ClassMap<Parent>
{
public ParentMap()
{
this.Table("Parents");
this.Id(x => x.Id);
this.Map(x => x.Name);
this.HasMany(x => …Run Code Online (Sandbox Code Playgroud) 我想知道,假设我有一个 ConcurrentBag 封装在这样的对象中
class Package
{
private ConcurrentBag<string> myList;
public string title {get; private set;}
public string description {get; private set;}
public Package(string title,string description)
{
myList = new ConcurrentBag<string>();
this.title = title;
this.description = description;
}
public override string ToString()
{
return title + " " + description;
}
}
Run Code Online (Sandbox Code Playgroud)
我将如何返回我的 ConcurrentBag 的只读版本?
我是asp.net的新手(但不是c#),我正在尝试将输出目录从\ bin移动到..\Build\debug.我已在构建属性中完成此操作,并且构建正常并将其放入正确的输出目录中.但是,当我尝试运行该应用程序时,我收到以下错误:
'/'应用程序中的服务器错误.
分析器错误
说明:解析为此请求提供服务所需的资源时发生错误.请查看以下特定的解析错误详细信息并相应地修改源文件.
分析器错误消息:无法加载类型"MyApp.Backend.WebApiApplication".
来源错误:
第1行:<%@ Application Codebehind ="Global.asax.cs"Inherits ="MyApp.Backend.WebApiApplication"Language ="C#"%>
源文件:/global.asax行:1
版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.18045.
它与Visual Studio托管网站的方式有关吗?任何帮助,将不胜感激.
下面是使用 MVVM LightSet方法的基本模式:
public class MyViewModel : ViewModelBase
{
private string _text;
public Text
{
get{ return _text; }
set{ Set(()=>Text, ref _text, value); }
}
}
Run Code Online (Sandbox Code Playgroud)
但是在我的项目中,我将字段保留在 DataModel 类中,这对于克隆数据和复制取消修改非常有用:
public class MyDataModel
{
public string Text;
}
public class MyViewModel : ViewModelBase
{
private MyDataModel data;
public Text
{
get{ return data.Text; }
set{ data.Text = value; RaisePropertyChanged(()=>Text); }
}
}
Run Code Online (Sandbox Code Playgroud)
但是在这种情况下我不能使用该Set方法,因为它的第二个参数是ref并且我不能data.Text用作ref参数。
Set( ()=>Text, ref data.Text, value ); // …Run Code Online (Sandbox Code Playgroud) c# ×7
.net ×3
nunit ×2
unit-testing ×2
asp.net ×1
attributes ×1
dapper ×1
moq ×1
mvvm ×1
mvvm-light ×1
nhibernate ×1
orm ×1
specflow ×1
sqlite ×1
svn ×1
swagger ×1
swagger-ui ×1
swashbuckle ×1
testing ×1
wpf ×1