有没有人对一致的多线程应用程序单元测试方法有任何建议?我做了一个应用程序,其中我们的模拟"工作线程"有一个thread.sleep,其时间由公共成员变量指定.我们将使用它,以便我们可以设置特定线程完成其工作所需的时间,然后我们可以执行我们的断言.有没有更好的方法来做到这一点?任何可以处理这个问题的.Net的好模拟框架?
我们正在编写一个搜索应用程序,将搜索条件保存到会话状态,并在asp.net更新面板内执行搜索.有时,当我们连续执行多次搜索时,第二次或第三次搜索有时会返回第一组搜索条件的结果.
示例:我们的第一次搜索我们查看"John Smith" - >显示John Smith结果.第二次搜索我们查看"Bob Jones" - >显示John Smith结果.
我正如我所说的那样保存会话状态中的所有搜索条件,并从ajax请求中的会话状态读取它以格式化数据库查询.当我们在VS中放置断点时,一切都表现正常,但没有它们我们就会得到原始搜索条件和结果.
我的猜测是因为它们被保存在会话中,ajax请求以某种方式获得自己的会话并将条件保存到该会话,然后每次从该会话中检索条件,但是非异步的东西能够看到标准何时被修改并相应地将更改保存到状态,但由于它们来自两个不同的会话,因此保存和读取的内容存在差异.
编辑:::详细说明,有一个建议是将搜索条件附加到查询字符串,这通常是一种良好的做法,我同意它应该如何,但遵循我们的要求我不认为它是可行的.他们想要它,所以用户填写输入控件命中搜索,没有页面重新加载,他们唯一看到的是页面上的进度指示器,他们仍然能够导航和使用当前页面上的其他功能.如果我要向查询字符串添加条件,我将不得不执行另一个请求导致整个页面加载,这取决于搜索条件可能需要很长时间.这就是为什么我们使用ajax调用来执行搜索以及为什么我们不会导致另一个完整页面请求.....我希望这可以澄清情况.
假设我正在做一个基本的交易系统,我有以下对象.
public class User
{
public virtual int Id{get; set;}
}
public class Transaction
{
public virtual int Id{get; set;}
public virtual Item Item {get; set;}
public virtual User Seller{get; set;}
public virtual User Buyer{get; set;}
}
Run Code Online (Sandbox Code Playgroud)
请注意我如何将两个关系返回给User对象.当FHN生成表模式时,我从事务表返回到用户表的3 FK关系,"Buyer_id","Seller_id","User_id"
我认为它是基于默认情况下将引用属性称为"用户"的事实错误地自动生成"User_id"字段
如何使用FNH指定此映射?
当我在这个网站上测试我的javascript时,它的行为与我期望的一样.
但是,当我尝试在我的页面上测试时,它总是没有通过测试
function testName() {
if (new RegExp('^(?!^(\..+)?$)[^\x00-\x1f\\?*:^&!`~@#$$+=<>\?\*;|/]+$').test("me")) {
alert("good");
}
else {
alert("invalid characters");
} return false;
}
Run Code Online (Sandbox Code Playgroud)
该表达式应该测试特殊字符的文件名,如^&*!~+ = <>`等.我错过了一些愚蠢的东西吗?
.net ×2
ajax ×1
asp.net ×1
asp.net-ajax ×1
javascript ×1
nhibernate ×1
orm ×1
regex ×1
session ×1
unit-testing ×1