我正在使用ASP.NET Web API的单元测试编写测试用例.
现在我有一个动作调用我在服务层定义的一些方法,在那里我使用了以下代码行.
string username = User.Identity.Name;
// do something with username
// return something
Run Code Online (Sandbox Code Playgroud)
现在我如何为此创建单元测试方法,我得到空引用异常.我是一个新的编写单元测试和东西.
我想仅为此使用单元测试.
请帮我解决这个问题.谢谢.
在玩Python解释器时,我偶然发现了关于is运算符的这个冲突的情况:
如果评估发生在它返回的函数中True,如果它在外部完成则返回False.
>>> def func():
... a = 1000
... b = 1000
... return a is b
...
>>> a = 1000
>>> b = 1000
>>> a is b, func()
(False, True)
Run Code Online (Sandbox Code Playgroud)
由于is运营商评估id()的参与对象,这意味着a并b指向同一个int函数内声明的时候实例func,但是,相反,它们指向一个不同的对象时,它的外面.
为什么会这样?
注意:我知道identity(is)和equal(==)操作之间的区别,如了解Python的"is"操作符中所述.另外,我也知道python正在对范围内的整数执行缓存,[-5, 256]如"is"中所述,运算符与整数一起出现意外行为.
这不是这里的情况,因为数字超出了该范围,我确实想要评估身份而不是平等.
是否有跨数据库平台方式来获取刚刚插入的记录的主键?
我注意到这个答案说你可以通过Calling得到它SELECT LAST_INSERT_ID(),我认为你可以调用SELECT @@IDENTITY AS 'Identity';有一种常见的方法在jdbc中的数据库中做这个吗?
如果不是,你会如何建议我为一段可以访问任何SQL Server,MySQL和Oracle的代码实现这个?
我有一个奇怪的情况,我的数据库中的一些表从0开始其ID,即使TABLE CREATE具有IDENTITY(1,1).某些表格是这样,但其他表格则不然.它一直工作到今天.
我已经尝试重置标识列:
DBCC CHECKIDENT (SyncSession, reseed, 0);
Run Code Online (Sandbox Code Playgroud)
但是新的记录从0开始.我已经尝试过为所有表做这个,但有些仍然从0开始,有些从1开始.
有什么指针吗?
(我正在使用带有高级服务的SQL Server Express 2005)
我的确意味着身份平等.
例如,以下内容是否始终打印为真?
System.out.println("foo".getClass() == "fum".getClass());
Run Code Online (Sandbox Code Playgroud) 我正在将一堆新行插入到表中,该表定义如下:
CREATE TABLE [sometable](
[id] [int] IDENTITY(1,1) NOT NULL,
[someval] sometype NOT NULL
)
Run Code Online (Sandbox Code Playgroud)
使用以下插入:
insert into sometable select somefield as someval from othertable
Run Code Online (Sandbox Code Playgroud)
当我完成后,我想知道所有新插入的行的ID.SCOPE_IDENTITY()仅返回插入的最后一行ID.
我怎样才能获得所有新ID?
一种让人想到的方法是从sometable和scope_identity()后插入中获取当前最大的标识,并使用这两个值从sometable中进行选择.例如:
declare @currentMaxId int;
select @currentMaxId=MAX(id) from sometable
insert into sometable select somefield as someval from othertable
select * from sometable where id>@currentMaxId and id<=SCOPE_IDENTITY()
Run Code Online (Sandbox Code Playgroud)
有更好的模式吗?
我已经定义了一个临时变量来获取当前用户ID,它总是返回null.
这是快照:
为什么?
更新:
//
// POST: /Account/Login
[HttpPost]
[AllowAnonymous]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
if (!ModelState.IsValid)
{
return Json(new { success = false, ex = "Fail to login." });
}
var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, isPersistent: true, shouldLockout: false);
switch (result)
{
case SignInStatus.Success:
string userId = User.Identity.GetUserId();
return Json(new { success = true });
case SignInStatus.Failure:
return Json(new { success = false, ex = "Email or password was incorrect." });
default:
return Json(new { …Run Code Online (Sandbox Code Playgroud) 在SQL Server(在我的情况下,2005)中,如何使用T-SQL将identity属性添加到现有表列?
就像是:
alter table tblFoo
alter column bar identity(1,1)
Run Code Online (Sandbox Code Playgroud) 该id()内置功能使...
一个整数(或长整数),保证在该生命周期内该对象是唯一且常量的.
该is操作,相反,给...
对象身份
那么,为什么有可能有具有相同的两个对象id,但返回False到is检查?这是一个例子:
>>> class Test():
... def test():
... pass
>>> a = Test()
>>> b = Test()
>>> id(a.test) == id(b.test)
True
>>> a.test is b.test
False
Run Code Online (Sandbox Code Playgroud)
一个更令人不安的例子:(继续上述)
>>> b = a
>>> b is a
True
>>> b.test is a.test
False
>>> a.test is a.test
False
Run Code Online (Sandbox Code Playgroud)
然而:
>>> new_improved_test_method = lambda: None
>>> a.test = new_improved_test_method
>>> a.test is a.test
True
Run Code Online (Sandbox Code Playgroud) 我正在尝试为MVC5站点设置OAuth(在VS2012中).
我正在使用Fluent NHibernate.我已经设置了自己的Userstore并传入一个存储库对象来访问NHibernate会话对象.我将我的商店传递给默认的aspnet usermanager提供程序.这最终适用于本地注册和登录.我不是要设置连接/注册Facebook.
它获得了一个成功的帐户.在用户表中添加用户,在登录表中添加记录然后爆炸.我没有在用户存储中实现声明,或者在用户对象中放置声明集合.(不确定这是否真的需要,我正在剥离所有可能出错的东西以找到问题的根源).
爆炸的线是(在账户控制器中):
var identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);
Run Code Online (Sandbox Code Playgroud)
在这种方法中:
private async Task SignInAsync(IdentityUser user, bool isPersistent)
Run Code Online (Sandbox Code Playgroud)
这是堆栈跟踪的结束
[ArgumentNullException: Value cannot be null.
Parameter name: value]
System.Security.Claims.Claim..ctor(String type, String value, String valueType, String issuer, String originalIssuer, ClaimsIdentity subject, String propertyKey, String propertyValue) +14108789
System.Security.Claims.Claim..ctor(String type, String value, String valueType) +62
Microsoft.AspNet.Identity.<CreateAsync>d__0.MoveNext() +481
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +144
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +84
System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() +49
Web.Controllers.<SignInAsync>d__42.MoveNext() in d:\Google Drive\Development\GoalManagement\Web\Controllers\AccountController.cs:375
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +144
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +84
Web.Controllers.<ExternalLoginConfirmation>d__35.MoveNext() in d:\Google Drive\Development\GoalManagement\Web\Controllers\AccountController.cs:311
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +144 …Run Code Online (Sandbox Code Playgroud) asp.net identity claims-based-identity asp.net-mvc-5 asp.net-identity
identity ×10
asp.net ×2
java ×2
python ×2
sql ×2
sql-server ×2
t-sql ×2
.net ×1
asp.net-mvc ×1
c# ×1
class ×1
equality ×1
insert ×1
int ×1
jdbc ×1
jvm ×1
python-3.x ×1
unit-testing ×1
username ×1