- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
请查看这段代码:
public UserRepository GetUserRepositoryMock()
{
// mock all UserRepository instances.
var userRepositoryMock = Isolate.Fake.Instance<UserRepository>();
Isolate.Swap.AllInstances<UserRepository>().With(userRepositoryMock);
// make all public UserRepository members throw a NotSupportedException.
Isolate.WhenCalled(() => userRepositoryMock.Select(null)).WillThrow(new NotSupportedException());
Isolate.WhenCalled(() => userRepositoryMock.SelectOne(null)).WillThrow(new NotSupportedException());
Isolate.WhenCalled(() => userRepositoryMock.Save(null)).WillThrow(new NotSupportedException());
Isolate.WhenCalled(() => userRepositoryMock.Remove(null)).WillThrow(new NotSupportedException());
// ... et cetera until all public members of UserRepository will throw NotSupportedException.
}
[TestMethod]
public void ActivateUser_UserNotFound_ThrowsException()
{
var userRepositoryMock = GetUserRepositoryMock();
// override one of the public UserRepository members to return a specific value.
Isolate.WhenCalled(() => userRepositoryMock.SelectOne(null)).DoInstead(context =>
{
return null;
});
// call ActivateUser implementation.
RegistrationServices.ActivateUser("foo@bar.com", "password", "activation-code");
}
这段代码实际上做的是为 UserRepository 的所有公共(public)成员抛出 NotSupportedException。
这段代码我想要做的是让 UserRepository 的所有公共(public)成员抛出一个 NotSupportedException除了 SelectOne() 函数,它返回 null。
我想确保 RegistrationServices 的 ActivateUser() 函数不会调用 UserRepository 的任何函数, SelectOne() 我明确指定的函数。
如果是,例如通过更改 ActivateUser() 的实现来调用 UserRepository 的 Save() 和不改变相应的 *ActivateUser_UserNotFound_ThrowsException* 测试,我希望测试失败,因为更改可能会引入意外行为。这样我就可以将我的应用程序与第三方完全隔离并将编码错误减少到最低限度。
关于这段代码及其背后的原则,我的问题是:
最佳答案
注意:我在 Typemock 工作
您可以在此处采用多种方法来测试您想要的内容。例如,您可以使用 Isolate.Verify
用于确保没有对您的假对象进行特定调用的 API。
这将允许您不明确指定其他方法的返回,因为您可以确保它们没有发生:
[Test, Isolated]
public void ActivateUser_UserNotFound_ThrowsException()
{
var userRepositoryMock = Isolate.Fake.Instance<UserRepository>();
Isolate.Swap.AllInstances<UserRepository>().With(userRepositoryMock);
Isolate.WhenCalled(() => userRepositoryMock.SelectOne(null)).WillReturn(null);
// call ActivateUser implementation.
RegistrationServices.ActivateUser("foo@bar.com", "password", "activation-code");
Isolate.Verify.WasNotCalled(() => userRepositoryMock.Save(null));
Isolate.Verify.WasNotCalled(() => userRepositoryMock.Remove(null));
}
Isolator 的 WhenCalled()
以定义的顺序链接方法行为,这意味着在您的原始测试中,第一次 SelectOne
会抛出异常,第二次会抛出异常它将返回 null
。
希望对您有所帮助,如果您有其他问题,请随时通过支持或此处联系我们!
关于c# - 覆盖先前设置的 Typemock 隔离器的功能行为 (WillThrow()/DoInstead()),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6507825/
我正在寻找一个 .NET 覆盖工具,并且一直在尝试 PartCover,但结果喜忧参半。 我看到了 OpenCover旨在取代 PartCover,但到目前为止我还无法将它与 TypeMock Iso
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我正在尝试通过使用 typeMock 的方法调用来模拟。我在不同的情况下模拟了方法,但每次我都得到相同的结果。以下是代码: [TestFixture] public class HomeControl
我使用 typemock 进行单元测试。如何开始构建使用 typemock。我只能使用 typemock 和 msbuild 吗?否则我应该使用 nunit-console.exe 吗? 当我开始构建
foreach (BeamCluster cluster in executionContext.RevitModel.Beams .W
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我们想升级我们的构建服务器以运行我们的 typemock 测试,但是我在正确配置它并找到有关此的正确信息时遇到了一些麻烦。我们的设置是一个 TFS2010,有 20 多个项目,每个项目运行从 Type
正如你们中的一些人所知道的,在 .net 中模拟静态方法通常是不可能的。 通过模拟,我的意思是用另一个具有相同签名的方法替换类中的方法,通常用于测试目的。 用于模拟方法的两种主要方法是将其声明为虚拟方
我正在上一个类,如下所示。我想知道我们如何使用 Typemock 模拟此类 public static class MyClass { public static string MyFuncti
我正在使用 Typemock 进行一些单元测试。我 mock 了静态类小部件。我想模拟 Widget.GetPrice(123) 的返回值 A。 Isolate.Fake.StaticMethods(
Typemock Isolator .NET 是否有任何 F/OSS 替代方案? ? 最佳答案 免责声明:我在 Typemock 工作 Typemock Isolator 利用 CLR Profile
我想知道是否有人对如何集成 typemock 和 partcover 有一些想法。 我们在基于 c# sharepoint 的应用程序中有使用 typemock 的单元测试,我们希望通过 partco
我想测试一个使用 Linq to SQL 的类。我已经用 TypeMock Isolator 伪造了数据上下文,但是数据上下文还有一个我不知道如何伪造的功能。此函数用于 Linq to Sql 查询。
使用 VS 2010、NUnit、Typemock、 Entity Framework ... 我在使用 NUnit/Typemock 时遇到了一些奇怪的问题。我对测试世界还比较陌生,所以这可能是初学
好吧,愚蠢的问题。我正在尝试在 VS2005 中设置我的第一个 TypeMock 演示项目,但它无法识别 [TestMethod] 属性。我已经包含了 TypeMock 和 TypeMock.Arra
我有一个烦人的方法,它会弹出一个 MessageBox。所以当我尝试测试它时,我想做这样的事情。 /// /// A test for LoadConfig exception
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 2年前关闭。 Improve this qu
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
请查看这段代码: public UserRepository GetUserRepositoryMock() { // mock all Use
我是一名优秀的程序员,十分优秀!