从我发现的内容中有几次询问过这个问题:
答案有所帮助,但他们都指向一个特定的场景.我想对此有一个更普遍的想法.
何时应该通过共享库(DLL)考虑Web服务,反之亦然?
我们应该单元测试Web服务还是真的要单元测试Web服务为我们调用的代码并单独保留Web服务或者至少在集成测试之前等等....
编辑:进一步澄清/思考
我的想法是,测试Web服务真的是集成测试而不是单元测试吗?我问,因为我们此时(正在开发中)的Web服务是以这样的方式编码的,因此无法对它调用的代码进行单元测试.所以我想知道现在重构它是否值得/聪明,以便能够单独测试免费的Web服务代码?我想知道关于将两者分开是否重要的一般共识,或者是否真的可以对Web服务进行单元测试并称之为良好/明智.
如果我将它们分开,我会试着测试两者,但我不确定分离是否值得.我的预感是我应该的.
我正在查看DotNetOpenAuth项目附带的OAuthServiceProvider WebForms示例,但是希望将其实现为MVC 3应用程序.
有没有人已经这样做的例子?我可以想象这是一个人已经解决的常见情况.Google/SO未能返回任何有效的示例.
谢谢你的帮助.
如果我有一个管道分隔列表,我可以将它们自动拆分为GUID数组吗?
所以
"GUID1 | GUID2"
然后Guid[] values = selectedValue.Split("|".ToCharArray());会很好.
我有单独的对象'服务'和两个初始化和释放它的方法:
public class BaseService
{
protected static readonly object StaticLockObject = new object();
}
public abstract class WebServiceBase<TService> : BaseService
where TService : System.Web.Services.Protocols.SoapHttpClientProtocol, new()
{
protected static void EnsureServiceIsOpened()
{
if (Service == null)
{
lock (StaticLockObject)
{
if (Service == null)
{
Service = new TService();
}
}
}
}
protected static void EnsureServiceIsClosed()
{
if (Service != null)
{
lock (StaticLockObject)
{
if (Service != null) // Why expression is always true
{
Service.Dispose();
Service = null; …Run Code Online (Sandbox Code Playgroud) 基类包括字段'btnLogin',但其类型(FoodOrder.App_Code.LinkButtonDefault)与控件类型(FoodOrder.App_Code.LinkButtonDefault)不兼容.
ASPX:
<%@ Register Namespace="FoodOrder.App_Code" TagPrefix="ac1" %>
<ac1:LinkButtonDefault ID="btnLogin" runat="server" Text="Prijava" CssClass="gumbek"
onclick="btnLogin_Click" />
Run Code Online (Sandbox Code Playgroud)
LinkButtonDefault:
namespace FoodOrder.App_Code
{
public class LinkButtonDefault : LinkButton
{
protected override void OnLoad(System.EventArgs e)
{
Page.ClientScript.RegisterStartupScript(GetType(), "addClickFunctionScript",
_addClickFunctionScript, true);
string script = String.Format(_addClickScript, ClientID);
Page.ClientScript.RegisterStartupScript(GetType(), "click_" + ClientID,
script, true);
base.OnLoad(e);
}
private const string _addClickScript = "addClickFunction('{0}');";
private const string _addClickFunctionScript =
@" function addClickFunction(id) {{
var b = document.getElementById(id);
if (b && typeof(b.click) == 'undefined') b.click = function() {{
var result = true; …Run Code Online (Sandbox Code Playgroud) 我正在测试我的控制器.
在我的一个控制器方法中,我设置了Session变量:
public void Index(){
Session["foo"] = "bar";
return View();
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能对此进行单元测试?问题是测试时Session属性为null.无法进行注入,因为Session属性是只读的.
[TestMethod]
public void TestIndex()
// When
_controller.Index();
// Then
Assert.AreEqual("bar", _controller.Session["foo"])
Run Code Online (Sandbox Code Playgroud) 我想知道在"for"循环中是否有一种方法可以为根据其索引号命名的字符串变量赋值?
假设我有3个字符串变量:
string message1 = null;
string message2 = null;
string message3 = null;
Run Code Online (Sandbox Code Playgroud)
我希望'for'循环执行类似下面的代码:
for (int i = 1; i <=3; i++)
{
messagei = "blabla" + i.ToString();
}
Run Code Online (Sandbox Code Playgroud)
我不想使用"if"或"switch",因为它会使代码更难以遵循.
有没有办法做到这一点?
我是mvc,mvp或者你想称之为的新手.现在我尝试实现ReservationController用户首先选择日期的位置,然后获取合适的时间建议列表.您应该知道,建议取决于所选日期.这是我的问题/问题开始的地方.我是不是该:
1)在View界面中放置一个事件,DateChanged然后在控制器中订阅它?
2)UpdateSuggestions当所选日期改变时,从我的asp页面调用控制器.(然后我必须公开控制器方法)
要么
3)更新控制器构造函数中的建议.
此致并寻求帮助
埃里克
我对js/jquery很新,我试图在一个页面上设置一个varable,存储它,移动页面然后在新页面上使用varable.
我做了一个像这样的标签
a id="ex1" href="/example.hmtl">ONE<a>
点击它会带你到页面/example.html并设置一个名为'image'的变量,为此jquery id使用是
$("#ex1").click(function() {
var image = 1;
});
Run Code Online (Sandbox Code Playgroud)
一旦你的页面上的example.html id像varable'image'的值一样被加载到的值中 startAtSlide
$('.iosSlider').iosSlider({
startAtSlide : //value of var 'image' goes here,
snapToChildren : true
});
Run Code Online (Sandbox Code Playgroud)
这是可能的,如果是这样,我会以正确的方式去做吗?
我有一个简单的问题,我无法找到答案.我想创建一个字符串,50个字符后将用三个点替换后面的所有内容?所以作为一个简单的例子:
(快速的棕色狐狸跳过懒狗)会变得像:(快速的棕色狐狸跳过了......)
如果有人能给我一个快速回答或者指出一个非常感谢的回答问题?
c# ×6
asp.net-mvc ×2
unit-testing ×2
web-services ×2
.net ×1
asp.net ×1
controller ×1
for-loop ×1
javascript ×1
jquery ×1
oauth ×1
replace ×1
resharper ×1
session ×1
singleton ×1
string ×1
var ×1
variables ×1