- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在 nUnit 中发现了一些奇怪的行为吗?
以下 VB.Net 测试失败:
Test 'SameAsTest.UseSameAs' failed:
Expected string length 19 but was 29. Strings differ at index 19.
Expected: "Prop1 Get,Prop1 Get"
But was: "Prop1 Get,Prop1 Get,Prop1 Set"
------------------------------^
SameAsTest.vb(33,0): at SameAsTest.UseSameAs()
1 passed, 1 failed, 0 skipped, took 1.80 seconds (NUnit 2.5.5).
Option Strict On
Imports System
Imports System.Collections.Generic
Imports NUnit.Framework
<TestFixture()>
Public Class SameAsTest
Private CallHistory As List(Of String)
Private mPropValue As String = "ThisIsIt"
Public Property Prop1 As String
Get
CallHistory.Add("Prop1 Get")
Return mPropValue
End Get
Set(ByVal value As String)
CallHistory.Add("Prop1 Set")
mPropValue = value
End Set
End Property
<SetUp()>
Public Sub Setup()
CallHistory = New List(Of String)
End Sub
<Test()>
Public Sub UseSameAs()
Assert.That(Prop1, [Is].SameAs(Prop1))
Assert.That(String.Join(",", CallHistory.ToArray()), [Is].EqualTo("Prop1 Get,Prop1 Get"))
End Sub
<Test()>
Public Sub UseAreSame()
Assert.AreSame(Prop1, Prop1)
Assert.That(String.Join(",", CallHistory.ToArray()), [Is].EqualTo("Prop1 Get,Prop1 Get"))
End Sub
End Class
当 c# equiv 工作正常时:
2 passed, 0 failed, 0 skipped, took 0.19 seconds (NUnit 2.5.5).
using System;
using System.Collections.Generic;
using NUnit.Framework ;
[TestFixture ]
class Dummy
{
private List<String> CallHistory;
private String mPropValue = "ThisIsIt";
[SetUp]
public void Setup()
{
CallHistory = new List<string>();
}
public String Prop1
{
get
{
CallHistory.Add("Prop1 Get");
return mPropValue;
}
set
{
CallHistory.Add("Prop1 Set");
mPropValue = value;
}
}
[Test]
public void UseSameAs()
{
Assert.That(Prop1, Is.SameAs(Prop1));
Assert.That(String.Join(",", CallHistory.ToArray()), Is.EqualTo("Prop1 Get,Prop1 Get"));
}
[Test]
public void UseaAreSame()
{
Assert.AreSame(Prop1, Prop1);
Assert.That(String.Join(",", CallHistory.ToArray()), Is.EqualTo("Prop1 Get,Prop1 Get"));
}
}
最佳答案
问题实际上不是对 SameAs
的调用。问题是作为 Assert.That
调用的第一个参数传递的属性。
Assert.That
有许多不同的重载,事实证明重载解析在 VB 和 C# 中的完成方式不同。在 C# 中,属性匹配对象:
Asset.That(object actual, IResolveConstraint expression);
在 VB 中,它被匹配为:
Assert.That<Of T>(ByRef T actual, IResolveConstraint express);
由于 VB 版本实际上是将非引用属性值传递给需要引用的方法,因此它似乎通过创建本地字符串来模拟引用传递,通过引用将其传递到方法中,然后设置属性值到字符串的返回值。我不确定为什么它以这种方式选择函数,铁杆 VB 程序员也许能够解释它。
您可以通过声明一个局部变量并将其用作第一个参数来绕过它:
Dim prop1 = Prop1
Assert.That(prop1, [Is].SameAs(Prop1))
或者通过转换参数来强制它使用 That
方法的预期重载。
Assert.That(CType(Prop1, Object), [Is].SameAs(Prop1))
关于c# - SameAs 断言调用 setter 与 VB.Net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31272420/
sameAs 的 HTML 架构: Business Name Business Desciription. fb.com pinterest.com
在 Java OWL API 中,可以使用 OWLEquivalentClassesAxiom 添加等效类。是否有任何类似的类用于添加 OWL SameAs axiom? 最佳答案 我想你会想要OWL
Bitmap(来自 android.graphics)具有 sameAs 方法。给定另一个位图,如果它具有与该位图相同的尺寸、配置和像素数据,则返回 true。我想知道它是如何工作的?覆盖它是否有意义
使用 url 之间的实际区别是什么?与 sameAs schema.org 中的属性? 我正在向大型 Internet 网站添加微数据信息,包含数百万页。使用正确的标签非常重要。例如,上下文可以是到描
使用 和 有什么区别 NS是一些命名空间。 最佳答案 owl:sameAs适用于个人,owl:equivalentProperty适用于RDFS/OWL属性,owl:equivalentClass
我在 nUnit 中发现了一些奇怪的行为吗? 以下 VB.Net 测试失败: Test 'SameAsTest.UseSameAs' failed: Expected string length
我从源代码构建 SDK。我想使用以下脚本: img=MonkeyRunner.loadImageFromFile(path='/home/alsu/monkeyrunner/device.png')
我在原生中从原始位图创建克隆位图。并尝试通过 api android.graphics.Bitmap.sameAs() 比较 java 层中的 2 个位图,它在 Android O 中返回 false
我是一名优秀的程序员,十分优秀!